Android - NullPointerException on ListView adapter when using SimpleDateFormat - java

I'm having trouble when displaying a custom ListView on a tab (fragment). If I just set the adapter (which is a separate class that extends BaseAdapter) and the fields downloaded from the server, it works just fine. If I set the application to use my custom DateFormat class and format the date taken from the server in dd/MM/aaaa, I get a NullPointerException related to "childMeasure" (full logcat of the error below).
IndicatorsListAdapter.java (the adapter for the ListView)
package android.palharini.myhealth.fragments.tabs.adapters;
import java.util.List;
import android.app.Activity;
import android.content.Context;
import android.palharini.myhealth.R;
import android.palharini.myhealth.date_time.DateFormat;
import android.palharini.myhealth.db.entities.Indicator;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;
public class IndicatorsListAdapter extends BaseAdapter {
static class ViewHolder {
public TextView tvMeasure;
public TextView tvUnit;
public TextView tvDate;
public TextView tvTime;
public int position;
}
private ViewHolder holder;
private Context context;
private Indicator indicator;
private List<Indicator> lsIndicators;
private DateFormat df;
public IndicatorsListAdapter(Context context, List<Indicator> lsIndicators) {
this.context = context;
this.lsIndicators = lsIndicators;
}
#Override
public int getCount() {
return lsIndicators.size();
}
#Override
public Object getItem(int id) {
return lsIndicators.get(id);
}
#Override
public long getItemId(int id) {
return lsIndicators.get(id).getId();
}
#Override
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
LayoutInflater inflater = ((Activity) context).getLayoutInflater();
convertView = inflater.inflate(R.layout.list_indicators, parent, false);
holder = new ViewHolder();
holder.tvMeasure = (TextView) convertView.findViewById(R.id.lvTvMeasure);
holder.tvUnit = (TextView) convertView.findViewById(R.id.lvTvUnit);
holder.tvDate = (TextView) convertView.findViewById(R.id.lvTvDate);
holder.tvTime = (TextView) convertView.findViewById(R.id.lvTvTime);
convertView.setTag(holder);
}else{
holder = (ViewHolder) convertView.getTag();
}
indicator = lsIndicators.get(position);
if (indicator != null) {
holder.tvMeasure.setText(indicator.getMedida1().toString());
holder.tvUnit.setText(indicator.getUnidade());
String stDate = df.getDataAndroid(indicator.getData());
holder.tvDate.setText(stDate);
holder.tvTime.setText(indicator.getHora());
}
return convertView;
}
}
WeekTab.java (a tab which has to display the ListView, along with an AndroidPlot graph)
package android.palharini.myhealth.fragments.tabs;
import java.util.Arrays;
import java.util.List;
import com.androidplot.ui.SizeLayoutType;
import com.androidplot.ui.SizeMetrics;
import com.androidplot.xy.LineAndPointFormatter;
import com.androidplot.xy.PointLabelFormatter;
import com.androidplot.xy.SimpleXYSeries;
import com.androidplot.xy.XYPlot;
import com.androidplot.xy.XYSeries;
import com.androidplot.xy.XYStepMode;
import android.content.Intent;
import android.graphics.Color;
import android.os.Bundle;
import android.palharini.myhealth.R;
import android.palharini.myhealth.activities.edit.IndicatorEdit;
import android.palharini.myhealth.activities.register.IndicatorRegister;
import android.palharini.myhealth.date_time.DateFormat;
import android.palharini.myhealth.db.dao.IndicatorDAO;
import android.palharini.myhealth.db.entities.Indicator;
import android.palharini.myhealth.fragments.tabs.adapters.IndicatorsListAdapter;
import android.palharini.myhealth.session.SessionManager;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.Button;
import android.widget.ListView;
public class WeekTab extends Fragment {
private static Integer difData = 7;
private static String periodo = "DAY";
private SessionManager sessao;
private DateFormat ts;
private IndicatorDAO indDAO;
private ListView lvIndicadores;
private Button btCadastrarInd;
private Integer intTipoIndicador;
private int x, y=0;
private String stDataBusca;
private Double dbMedia, vtMedias1[], vtMedias2[];
private Integer intIdUsuario, vtDatas[];
private List<Indicator> lsIndicators;
private IndicatorsListAdapter adIndicators;
private XYPlot grafico;
private XYSeries grafSerie1, grafSerie2;
private LineAndPointFormatter grafFormat;
#Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
// TODO Auto-generated method stub
View view = inflater.inflate(R.layout.fragment_tab, container, false);
sessao = new SessionManager(getActivity());
ts = new DateFormat();
indDAO = new IndicatorDAO();
lvIndicadores = (ListView) view.findViewById(R.id.listViewInd);
btCadastrarInd = (Button) view.findViewById(R.id.btCadastrarInd);
grafico = (XYPlot) view.findViewById(R.id.xyPlot);
grafico.getBackgroundPaint().setColor(Color.WHITE);
grafico.getGraphWidget().getBackgroundPaint().setColor(Color.WHITE);
grafico.getGraphWidget().getGridBackgroundPaint().setColor(Color.WHITE);
grafico.setDomainStep(XYStepMode.INCREMENT_BY_VAL, 1);
grafico.setPlotMargins(0, 0, 0, 0);
grafico.setPlotPadding(25, 10, 20, 0);
grafico.setGridPadding(30, 30, 30, 10);
grafico.getGraphWidget().setSize(new SizeMetrics(0, SizeLayoutType.FILL, 0, SizeLayoutType.FILL));
grafico.getLayoutManager().remove(grafico.getLegendWidget());
grafico.getLayoutManager().remove(grafico.getDomainLabelWidget());
grafico.getLayoutManager().remove(grafico.getRangeLabelWidget());
grafico.getLayoutManager().remove(grafico.getTitleWidget());
grafico.getLayoutManager().getPaddingPaint().setColor(Color.TRANSPARENT);
grafico.setTicksPerRangeLabel(5);
grafico.setTicksPerDomainLabel(1);
grafico.getGraphWidget().setMarginBottom(15);
Intent intent = getActivity().getIntent();
intTipoIndicador = intent.getIntExtra("tipoSelecionado", 0);
intIdUsuario = sessao.getIdUsuario();
stDataBusca = ts.getDataAtualBusca();
vtMedias1 = new Double[difData+1];
vtMedias2 = new Double[difData+1];
vtDatas = new Integer[difData+1];
for (x = difData; x>=0; x--) {
dbMedia = indDAO.buscarMedia1Periodo(
intTipoIndicador, intIdUsuario, periodo, stDataBusca, x);
if (dbMedia > 0) {
vtMedias1[x] = dbMedia;
vtDatas[x] = x;
y = x;
}
else {
vtMedias1[x] = vtMedias1[y];
vtDatas[x] = x;
}
}
grafSerie1 = new SimpleXYSeries (Arrays.asList(vtDatas), Arrays.asList(vtMedias1), "Médias");
grafFormat = new LineAndPointFormatter(
Color.RED,
Color.RED,
Color.TRANSPARENT,
null);
grafFormat.setPointLabelFormatter(new PointLabelFormatter());
grafFormat.configure(getActivity(), R.xml.formato_serie_medias);
grafico.addSeries(grafSerie1, grafFormat);
if (intTipoIndicador == 3) {
for (int x = difData; x>=0; x--) {
dbMedia = indDAO.buscarMedia2Periodo(
intTipoIndicador, intIdUsuario, periodo, stDataBusca, x);
if (dbMedia > 0) {
vtMedias2[x] = dbMedia;
vtDatas[x] = x;
y = x;
}
else {
vtMedias2[x] = vtMedias2[y];
vtDatas[x] = x;
}
}
grafSerie2 = new SimpleXYSeries (Arrays.asList(vtDatas), Arrays.asList(vtMedias2), "Médias");
grafico.addSeries(grafSerie2, grafFormat);
}
lsIndicators = indDAO.buscarIndicadoresPeriodoTipo(
intIdUsuario, intTipoIndicador, periodo, stDataBusca, difData);
adIndicators = new IndicatorsListAdapter(getActivity(), lsIndicators);
lvIndicadores.setAdapter(adIndicators);
lvIndicadores.setOnItemClickListener(new OnItemClickListener() {
#Override
public void onItemClick(AdapterView<?> adapter, View view, int position, long arg3) {
// TODO Auto-generated method stub
Indicator indicSelecionado = new Indicator();
indicSelecionado = (Indicator) lvIndicadores.getItemAtPosition(position);
Intent irTelaEdicaoIndicador = new Intent(getActivity(), IndicatorEdit.class);
irTelaEdicaoIndicador.putExtra("idIndicador", indicSelecionado.getId());
startActivity(irTelaEdicaoIndicador);
}
});
btCadastrarInd.setOnClickListener(new Button.OnClickListener () {
#Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent irTelaCadIndicador = new Intent(getActivity(), IndicatorRegister.class);
irTelaCadIndicador.putExtra("tipoSelecionado", intTipoIndicador);
startActivity(irTelaCadIndicador);
}
});
return view;
}
}
Logcat
11-28 13:14:17.177: E/AndroidRuntime(1152): FATAL EXCEPTION: main
11-28 13:14:17.177: E/AndroidRuntime(1152): Process: android.palharini.myhealth, PID: 1152
11-28 13:14:17.177: E/AndroidRuntime(1152): java.lang.NullPointerException
11-28 13:14:17.177: E/AndroidRuntime(1152): at android.palharini.myhealth.fragments.tabs.adapters.IndicatorsListAdapter.getView(IndicatorsListAdapter.java:81)
11-28 13:14:17.177: E/AndroidRuntime(1152): at android.widget.AbsListView.obtainView(AbsListView.java:2255)
11-28 13:14:17.177: E/AndroidRuntime(1152): at android.widget.ListView.measureHeightOfChildren(ListView.java:1263)
11-28 13:14:17.177: E/AndroidRuntime(1152): at android.widget.ListView.onMeasure(ListView.java:1175)
11-28 13:14:17.177: E/AndroidRuntime(1152): at android.view.View.measure(View.java:16497)
11-28 13:14:17.177: E/AndroidRuntime(1152): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125)
11-28 13:14:17.177: E/AndroidRuntime(1152): at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
11-28 13:14:17.177: E/AndroidRuntime(1152): at android.view.View.measure(View.java:16497)
11-28 13:14:17.177: E/AndroidRuntime(1152): at android.widget.LinearLayout.measureVertical(LinearLayout.java:847)
11-28 13:14:17.177: E/AndroidRuntime(1152): at android.widget.LinearLayout.onMeasure(LinearLayout.java:588)
11-28 13:14:17.177: E/AndroidRuntime(1152): at android.view.View.measure(View.java:16497)
11-28 13:14:17.177: E/AndroidRuntime(1152): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125)
11-28 13:14:17.177: E/AndroidRuntime(1152): at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
11-28 13:14:17.177: E/AndroidRuntime(1152): at android.view.View.measure(View.java:16497)
11-28 13:14:17.177: E/AndroidRuntime(1152): at android.support.v4.view.ViewPager.onMeasure(ViewPager.java:1456)
11-28 13:14:17.177: E/AndroidRuntime(1152): at android.view.View.measure(View.java:16497)
11-28 13:14:17.177: E/AndroidRuntime(1152): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125)
11-28 13:14:17.177: E/AndroidRuntime(1152): at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
11-28 13:14:17.177: E/AndroidRuntime(1152): at android.view.View.measure(View.java:16497)
11-28 13:14:17.177: E/AndroidRuntime(1152): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125)
11-28 13:14:17.177: E/AndroidRuntime(1152): at com.android.internal.widget.ActionBarOverlayLayout.onMeasure(ActionBarOverlayLayout.java:327)
11-28 13:14:17.177: E/AndroidRuntime(1152): at android.view.View.measure(View.java:16497)
11-28 13:14:17.177: E/AndroidRuntime(1152): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125)
11-28 13:14:17.177: E/AndroidRuntime(1152): at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
11-28 13:14:17.177: E/AndroidRuntime(1152): at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2291)
11-28 13:14:17.177: E/AndroidRuntime(1152): at android.view.View.measure(View.java:16497)
11-28 13:14:17.177: E/AndroidRuntime(1152): at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:1912)
11-28 13:14:17.177: E/AndroidRuntime(1152): at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1109)
11-28 13:14:17.177: E/AndroidRuntime(1152): at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1291)
11-28 13:14:17.177: E/AndroidRuntime(1152): at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:996)
11-28 13:14:17.177: E/AndroidRuntime(1152): at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5600)
11-28 13:14:17.177: E/AndroidRuntime(1152): at android.view.Choreographer$CallbackRecord.run(Choreographer.java:761)
11-28 13:14:17.177: E/AndroidRuntime(1152): at android.view.Choreographer.doCallbacks(Choreographer.java:574)
11-28 13:14:17.177: E/AndroidRuntime(1152): at android.view.Choreographer.doFrame(Choreographer.java:544)
11-28 13:14:17.177: E/AndroidRuntime(1152): at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:747)
11-28 13:14:17.177: E/AndroidRuntime(1152): at android.os.Handler.handleCallback(Handler.java:733)
11-28 13:14:17.177: E/AndroidRuntime(1152): at android.os.Handler.dispatchMessage(Handler.java:95)
11-28 13:14:17.177: E/AndroidRuntime(1152): at android.os.Looper.loop(Looper.java:136)
11-28 13:14:17.177: E/AndroidRuntime(1152): at android.app.ActivityThread.main(ActivityThread.java:5001)
11-28 13:14:17.177: E/AndroidRuntime(1152): at java.lang.reflect.Method.invokeNative(Native Method)
11-28 13:14:17.177: E/AndroidRuntime(1152): at java.lang.reflect.Method.invoke(Method.java:515)
11-28 13:14:17.177: E/AndroidRuntime(1152): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
11-28 13:14:17.177: E/AndroidRuntime(1152): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
11-28 13:14:17.177: E/AndroidRuntime(1152): at dalvik.system.NativeStart.main(Native Method)
Can someone help me on this? (if additional code samples are needed, I'll be glad to provide)
Thanks in advance!

change
private DateFormat df;
to
private DateFormat df = new SimpleDateFormat("MM-dd kk:mm:ss");

I see private DateFormat df; at the top of your IndicatorsListAdapter-class, but I don't see you intialize it anywhere before you get in the getView line 81:
String stDate = df.getDataAndroid(indicator.getData());
Perhaps change it to:
if(df != null)
String stDate = df.getDataAndroid(indicator.getData());
or simply set your df somewhere before this, like directly at the variable:
private final DateFormat df = new SimpleDateFormat("dd-MM-yyyy");
// replace dd-MM-yyyy with your desired Date format

Related

Unfortunately app has stopped in Android when try to implement RecylerView

I am following slidenerd Material design tutorial(Android RecyclerView Example part1,2,3,4) & I am using real device to test my android application.I have successfully build navigation drawer & when I try to add RecylerView into it by adding adapter (ThalakazAdapter.java) , app unfortunately get stopped.
This is my NavigationDrawerFragment.java
package com.thaalakaz.nadeesha.materialdesignapp1;
import android.content.Context;
import android.content.SharedPreferences;
import android.os.Bundle;
//import android.app.Fragment;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBarDrawerToggle;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.Toolbar;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.support.v4.app.Fragment;
import java.util.ArrayList;
import java.util.List;
/**
* A simple {#link Fragment} subclass.
*/
public class NavigationDrawerFragment extends Fragment {
private RecyclerView recyclerView;
public static final String PREF_FILE_NAME = "testpref";
public static final String KAY_USER_LEARNED_DRAWER ="user_learned_drawer";
private ActionBarDrawerToggle mDrawerToggle;
private DrawerLayout mDrawerLayout;
private ThalakazAdapter adapter;
private boolean mUserLearnedDrawer;
private boolean mFromSavedInstanceState;
private View containerView;
public NavigationDrawerFragment() {
// Required empty public constructor
}
#Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mUserLearnedDrawer=Boolean.valueOf(readFromPreferences(getActivity(),KAY_USER_LEARNED_DRAWER,"false"));
if (savedInstanceState != null){
mFromSavedInstanceState = true;
}
}
#Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View layout = inflater.inflate(R.layout.fragment_navigation_drawer, container, false);
recyclerView = (RecyclerView) layout.findViewById(R.id.drawer_layout);
adapter = new ThalakazAdapter(getActivity(),getData());
recyclerView.setAdapter(adapter);
recyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
return layout;
}
public static List<Information> getData(){
List<Information> data = new ArrayList<>();
int[] icons ={R.drawable.ic_m,R.drawable.ic_m1,R.drawable.ic_m2,R.drawable.ic_m3};
String[] titles = {"Nadeesha","Thilakarathne","Semini","Roshani"};
for (int i=0;i<titles.length && i<icons.length;i++){
Information current = new Information();
current.iconId = icons[i];
current.titlel = titles[i];
data.add(current);
}
return data;
}
public void setUp(int fragmentId, DrawerLayout drawerLayout, final Toolbar toolbar) {
containerView = getActivity().findViewById(fragmentId);
mDrawerLayout = drawerLayout;
mDrawerToggle = new ActionBarDrawerToggle(getActivity(),drawerLayout,toolbar,R.string.drawer_open,R.string.drawer_close){
#Override
public void onDrawerOpened(View drawerView) {
super.onDrawerOpened(drawerView);
if(!mUserLearnedDrawer){
mUserLearnedDrawer = true;
saveToPreferences(getActivity(),KAY_USER_LEARNED_DRAWER,mUserLearnedDrawer+"");
}
getActivity().invalidateOptionsMenu();
}
#Override
public void onDrawerClosed(View drawerView) {
super.onDrawerClosed(drawerView);
getActivity().invalidateOptionsMenu();
}
#Override
public void onDrawerSlide(View drawerView, float slideOffset) {
if (slideOffset<0.6){
toolbar.setAlpha(1-slideOffset);
}
}
};
if (!mUserLearnedDrawer && mFromSavedInstanceState){
mDrawerLayout.openDrawer(containerView);
}
mDrawerLayout.setDrawerListener(mDrawerToggle);
mDrawerLayout.post(new Runnable() {
#Override
public void run() {
mDrawerToggle.syncState();
}
});
}
public static void saveToPreferences(Context context,String prferenceName,String preferenceValue){
SharedPreferences sharedPreferences = context.getSharedPreferences(PREF_FILE_NAME,Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString(prferenceName,preferenceValue);
editor.apply();
}
public static String readFromPreferences(Context context,String prferenceName,String defaultValue){
SharedPreferences sharedPreferences = context.getSharedPreferences(PREF_FILE_NAME,Context.MODE_PRIVATE);
return sharedPreferences.getString(prferenceName,defaultValue);
}
}
This is my Adapter (ThalakazAdapter.java)
package com.thaalakaz.nadeesha.materialdesignapp1;
import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
import java.util.Collections;
import java.util.List;
/**
* Created by hp on 7/22/2015.
*/
public class ThalakazAdapter extends RecyclerView.Adapter <ThalakazAdapter.myViewHolder>{
private LayoutInflater inflater;
List<Information> data = Collections.emptyList();
public ThalakazAdapter(Context context, List<Information> data){
inflater=LayoutInflater.from(context);
this.data = data;
}
#Override
public myViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view=inflater.inflate(R.layout.custom_row, parent, false);
myViewHolder holder = new myViewHolder(view);
return holder;
}
#Override
public void onBindViewHolder(myViewHolder holder, int position) {
Information current = data.get(position);
holder.title.setText(current.titlel);
holder.icon.setImageResource(current.iconId);
}
#Override
public int getItemCount() {
return 0;
}
class myViewHolder extends RecyclerView.ViewHolder{
ImageView icon;
TextView title;
public myViewHolder(View itemView) {
super(itemView);
title = (TextView) itemView.findViewById(R.id.listText);
icon = (ImageView) itemView.findViewById(R.id.listIcon);
}
}
}
My information.java class
package com.thaalakaz.nadeesha.materialdesignapp1;
/**
* Created by hp on 7/22/2015.
*/
public class Information {
int iconId;
String titlel;
}
You can view my entire project from here
Logcat
07-21 22:32:07.101 7099-7099/com.thaalakaz.nadeesha.materialdesignapp1 D/dalvikvm﹕ Late-enabling CheckJNI
07-21 22:32:07.111 7099-7099/com.thaalakaz.nadeesha.materialdesignapp1 I/SystemProperties﹕ get key=ro.kernel.android.tracing
07-21 22:32:07.281 7099-7099/com.thaalakaz.nadeesha.materialdesignapp1 I/dalvikvm﹕ Could not find method android.view.ViewGroup.onRtlPropertiesChanged, referenced from method android.support.v7.widget.Toolbar.onRtlPropertiesChanged
07-21 22:32:07.281 7099-7099/com.thaalakaz.nadeesha.materialdesignapp1 W/dalvikvm﹕ VFY: unable to resolve virtual method 14685: Landroid/view/ViewGroup;.onRtlPropertiesChanged (I)V
07-21 22:32:07.281 7099-7099/com.thaalakaz.nadeesha.materialdesignapp1 D/dalvikvm﹕ VFY: replacing opcode 0x6f at 0x0007
07-21 22:32:07.301 7099-7099/com.thaalakaz.nadeesha.materialdesignapp1 I/dalvikvm﹕ Could not find method android.content.res.TypedArray.getChangingConfigurations, referenced from method android.support.v7.internal.widget.TintTypedArray.getChangingConfigurations
07-21 22:32:07.301 7099-7099/com.thaalakaz.nadeesha.materialdesignapp1 W/dalvikvm﹕ VFY: unable to resolve virtual method 414: Landroid/content/res/TypedArray;.getChangingConfigurations ()I
07-21 22:32:07.301 7099-7099/com.thaalakaz.nadeesha.materialdesignapp1 D/dalvikvm﹕ VFY: replacing opcode 0x6e at 0x0002
07-21 22:32:07.311 7099-7099/com.thaalakaz.nadeesha.materialdesignapp1 I/dalvikvm﹕ Could not find method android.content.res.TypedArray.getType, referenced from method android.support.v7.internal.widget.TintTypedArray.getType
07-21 22:32:07.311 7099-7099/com.thaalakaz.nadeesha.materialdesignapp1 W/dalvikvm﹕ VFY: unable to resolve virtual method 436: Landroid/content/res/TypedArray;.getType (I)I
07-21 22:32:07.311 7099-7099/com.thaalakaz.nadeesha.materialdesignapp1 D/dalvikvm﹕ VFY: replacing opcode 0x6e at 0x0002
07-21 22:32:07.381 7099-7099/com.thaalakaz.nadeesha.materialdesignapp1 D/AndroidRuntime﹕ Shutting down VM
07-21 22:32:07.381 7099-7099/com.thaalakaz.nadeesha.materialdesignapp1 W/dalvikvm﹕ threadid=1: thread exiting with uncaught exception (group=0x41027208)
07-21 22:32:07.391 7099-7099/com.thaalakaz.nadeesha.materialdesignapp1 E/AndroidRuntime﹕ FATAL EXCEPTION: main
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.thaalakaz.nadeesha.materialdesignapp1/com.thaalakaz.nadeesha.materialdesignapp1.MainActivity}: android.view.InflateException: Binary XML file line #24: Error inflating class fragment
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1956)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981)
at android.app.ActivityThread.access$600(ActivityThread.java:123)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4424)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:787)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:554)
at dalvik.system.NativeStart.main(Native Method)
Caused by: android.view.InflateException: Binary XML file line #24: Error inflating class fragment
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:697)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:739)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:742)
at android.view.LayoutInflater.inflate(LayoutInflater.java:489)
at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
at android.view.LayoutInflater.inflate(LayoutInflater.java:352)
at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:249)
at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:106)
at com.thaalakaz.nadeesha.materialdesignapp1.MainActivity.onCreate(MainActivity.java:20)
at android.app.Activity.performCreate(Activity.java:4465)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1920)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981)
            at android.app.ActivityThread.access$600(ActivityThread.java:123)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147)
            at android.os.Handler.dispatchMessage(Handler.java:99)
            at android.os.Looper.loop(Looper.java:137)
            at android.app.ActivityThread.main(ActivityThread.java:4424)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:511)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:787)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:554)
            at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.NullPointerException
at com.thaalakaz.nadeesha.materialdesignapp1.NavigationDrawerFragment.onCreateView(NavigationDrawerFragment.java:63)
at android.support.v4.app.Fragment.performCreateView(Fragment.java:1789)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:924)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1116)
at android.support.v4.app.FragmentManagerImpl.addFragment(FragmentManager.java:1218)
at android.support.v4.app.FragmentManagerImpl.onCreateView(FragmentManager.java:2170)
at android.support.v4.app.FragmentActivity.onCreateView(FragmentActivity.java:300)
at android.support.v7.app.AppCompatDelegateImplV7.callActivityOnCreateView(AppCompatDelegateImplV7.java:838)
at android.support.v7.app.AppCompatDelegateImplV11.callActivityOnCreateView(AppCompatDelegateImplV11.java:34)
at android.support.v7.app.AppCompatDelegateImplV7.onCreateView(AppCompatDelegateImplV7.java:826)
at android.support.v4.view.LayoutInflaterCompatHC$FactoryWrapperHC.onCreateView(LayoutInflaterCompatHC.java:44)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:668)
            at android.view.LayoutInflater.rInflate(LayoutInflater.java:739)
            at android.view.LayoutInflater.rInflate(LayoutInflater.java:742)
            at android.view.LayoutInflater.inflate(LayoutInflater.java:489)
            at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
            at android.view.LayoutInflater.inflate(LayoutInflater.java:352)
            at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:249)
            at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:106)
            at com.thaalakaz.nadeesha.materialdesignapp1.MainActivity.onCreate(MainActivity.java:20)
            at android.app.Activity.performCreate(Activity.java:4465)
            at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1920)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981)
            at android.app.ActivityThread.access$600(ActivityThread.java:123)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147)
            at android.os.Handler.dispatchMessage(Handler.java:99)
            at android.os.Looper.loop(Looper.java:137)
            at android.app.ActivityThread.main(ActivityThread.java:4424)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:511)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:787)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:554)
            at dalvik.system.NativeStart.main(Native Method)
fragment_navigation_drawer.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#DADADA"
tools:context="com.thaalakaz.nadeesha.materialdesignapp1.NavigationDrawerFragment">
<LinearLayout
android:id="#+id/containerDrawerImage"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#FF6F00">
<ImageView
android:layout_width="280dp"
android:layout_height="140dp"
android:src = "#drawable/dog"
android:layout_margin="16dp"/>
</LinearLayout>
<android.support.v7.widget.RecyclerView
android:id="#+id/drawerList"
android:layout_height="match_parent"
android:layout_width="wrap_content">
</android.support.v7.widget.RecyclerView>
</RelativeLayout>
in your onCreateView your are looking for the wrong id. Change
recyclerView = (RecyclerView) layout.findViewById(R.id.drawer_layout);
with
recyclerView = (RecyclerView) layout.findViewById(R.id.drawerList);
I also noticed that in your Adapter's constructor, you are assingn this.data to itself. Change
this.data = this.data;
to
this.data = data
and getItemCount shouldn't return 0, but the size of data (if it is not null)

Nullpointerexception listview android

I am trying to display an array of strings in a list view. the app crashes saying null pointer exception but it does not specify the line in which null pointer occurs.
ReportHistoryFragment:-
package com.appdev.ngoapp;
import android.app.Fragment;
import android.app.ProgressDialog;
import android.content.Context;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import com.parse.FindCallback;
import com.parse.GetCallback;
import com.parse.ParseException;
import com.parse.ParseObject;
import com.parse.ParseQuery;
import com.parse.ParseUser;
import java.util.Iterator;
import java.util.List;
/**
* Created by Adarsh on 01-02-2015.
*/
public class ReportHistoryFragment extends Fragment {
View reportHistory;
ParseUser parseUser;
ParseQuery<ParseObject> parseQuery,pq;
ParseObject parseObject;
String[] title;
Context context;
ArrayAdapter<String> stringArrayAdapter;
ListView listView;
int size,i=0;
ProgressDialog progressDialog;
Iterator<ParseObject> iterator;
public ReportHistoryFragment(Context context) {
this.context=context;
}
#Nullable
#Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
reportHistory = inflater.inflate(R.layout.report_history_layout,container,false);
listView = (ListView) reportHistory.findViewById(R.id.list_history);
return reportHistory;
}
#Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
parseUser = ParseUser.getCurrentUser();
progressDialog = ProgressDialog.show(context,"Downloading Data","Please wait...",true);
progressDialog.setCancelable(false);
downloadData();
}
public void downloadData() {
parseQuery = ParseQuery.getQuery("Reports");
parseQuery.whereEqualTo("user",parseUser);
parseQuery.findInBackground(new FindCallback<ParseObject>() {
#Override
public void done(List<ParseObject> parseObjects, ParseException e) {
if (e == null) {
iterator = parseObjects.iterator();
size = parseObjects.size();
title = new String[size];
i=0;
while (iterator.hasNext()) {
parseObject = iterator.next();
pq = ParseQuery.getQuery("Reports");
Log.v("ID",parseObject.getObjectId());
pq.getInBackground(parseObject.getObjectId(), new GetCallback<ParseObject>() {
#Override
public void done(ParseObject object, ParseException e) {
if (e == null) {
title[i] = object.getString("title");
i++;
} else {
e.printStackTrace();
}
if(i==size-1) {
stringArrayAdapter = new ArrayAdapter<String>(context,android.R.layout.simple_list_item_1,title);
listView.setAdapter(stringArrayAdapter);
}
}
});
}
} else {
e.printStackTrace();
}
}
});
}
}
report_history_layout.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ListView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="#+id/list_history">
</ListView>
</RelativeLayout>
Logcat
02-03 20:34:07.780 18717-18717/com.appdev.ngoapp E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: com.appdev.ngoapp, PID: 18717
java.lang.NullPointerException
at android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:394)
at android.widget.ArrayAdapter.getView(ArrayAdapter.java:362)
at android.widget.AbsListView.obtainView(AbsListView.java:2255)
at android.widget.ListView.measureHeightOfChildren(ListView.java:1263)
at android.widget.ListView.onMeasure(ListView.java:1175)
at android.view.View.measure(View.java:16521)
at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:719)
at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:455)
at android.view.View.measure(View.java:16521)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
at android.view.View.measure(View.java:16521)
at android.support.v4.widget.DrawerLayout.onMeasure(DrawerLayout.java:851)
at android.view.View.measure(View.java:16521)
at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:719)
at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:455)
at android.view.View.measure(View.java:16521)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
at android.view.View.measure(View.java:16521)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125)
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1450)
at android.widget.LinearLayout.measureVertical(LinearLayout.java:695)
at android.widget.LinearLayout.onMeasure(LinearLayout.java:588)
at android.view.View.measure(View.java:16521)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
at android.view.View.measure(View.java:16521)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125)
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1450)
at android.widget.LinearLayout.measureVertical(LinearLayout.java:695)
at android.widget.LinearLayout.onMeasure(LinearLayout.java:588)
at android.view.View.measure(View.java:16521)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2552)
at android.view.View.measure(View.java:16521)
at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:1915)
at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1109)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1291)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:996)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5603)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:761)
at android.view.Choreographer.doCallbacks(Choreographer.java:574)
at android.view.Choreographer.doFrame(Choreographer.java:544)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:747)
at android.os.Handler.handleCallback(Handler.java:733)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5146)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:732)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:566)
at dalvik.system.NativeStart.main(Native Method)
Check if you're actually putting anything in your title array. Then check whether stringArrayAdapter is initializing properly.

Null pointer exception on CursorAdapter

I am getting a NullPointerException. Below you can find my Logcat and the relevant code.
Logcat:
12-23 00:17:35.330: E/AndroidRuntime(2019): FATAL EXCEPTION: main
12-23 00:17:35.330: E/AndroidRuntime(2019): Process: com.android.timesheet, PID: 2019
12-23 00:17:35.330: E/AndroidRuntime(2019): java.lang.NullPointerException
12-23 00:17:35.330: E/AndroidRuntime(2019): at com.android.timesheet.adapter.CustomCursorAdapter$1.onClick(CustomCursorAdapter.java:54)
12-23 00:17:35.330: E/AndroidRuntime(2019): at android.view.View.performClick(View.java:4438)
12-23 00:17:35.330: E/AndroidRuntime(2019): at android.view.View$PerformClick.run(View.java:18422)
12-23 00:17:35.330: E/AndroidRuntime(2019): at android.os.Handler.handleCallback(Handler.java:733)
12-23 00:17:35.330: E/AndroidRuntime(2019): at android.os.Handler.dispatchMessage(Handler.java:95)
12-23 00:17:35.330: E/AndroidRuntime(2019): at android.os.Looper.loop(Looper.java:136)
12-23 00:17:35.330: E/AndroidRuntime(2019): at android.app.ActivityThread.main(ActivityThread.java:5017)
12-23 00:17:35.330: E/AndroidRuntime(2019): at java.lang.reflect.Method.invokeNative(Native Method)
12-23 00:17:35.330: E/AndroidRuntime(2019): at java.lang.reflect.Method.invoke(Method.java:515)
12-23 00:17:35.330: E/AndroidRuntime(2019): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
12-23 00:17:35.330: E/AndroidRuntime(2019): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
12-23 00:17:35.330: E/AndroidRuntime(2019): at dalvik.system.NativeStart.main(Native Method)
CustomCursorAdapter.java:
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.database.Cursor;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.CursorAdapter;
import android.widget.TextView;
import com.android.timesheet.ModifyMember;
import com.android.timesheet.R;
public class CustomCursorAdapter extends CursorAdapter {
Button delete_btn;
TextView memID_tv, memName_tv;
#SuppressWarnings("deprecation")
public CustomCursorAdapter(Activity context, Cursor c) {
super(context, c);
}
#Override
public View newView(Context context, Cursor cursor, ViewGroup parent) {
// when the view will be created for first time,
// we need to tell the adapters, how each item will look
LayoutInflater inflater = LayoutInflater.from(parent.getContext());
View retView = inflater.inflate(R.layout.single_row_item, parent, false);
return retView;
}
#Override
public void bindView(View view, final Context context, Cursor cursor) {
// here we are setting our data
// that means, take the data from the cursor and put it in views
TextView textViewPersonName = (TextView) view.findViewById(R.id.tv_person_name);
textViewPersonName.setText(cursor.getString(cursor.getColumnIndex(cursor.getColumnName(1))));
delete_btn=(Button)view.findViewById(R.id.delete_btn);
delete_btn.setOnClickListener(new View.OnClickListener() {
#Override
public void onClick(View v) {
memID_tv = (TextView)v.findViewById(R.id.member_id);
memName_tv = (TextView)v.findViewById(R.id.member_name);
String memberID_val = memID_tv.getText().toString();; ---->54th Line
String memberName_val = memName_tv.getText().toString();
Intent i = new Intent(context,
ModifyMember.class);
i.putExtra("memberName", memberName_val);
i.putExtra("memberID", memberID_val);
((Activity)context).startActivity(i);
}
});
}
}
I am using a delete button to delete all the listview row items. At that point I am getting the NullPointerException.
Use view(view of row) instead of v parameter of onClick method which is view of Button :
delete_btn=(Button)view.findViewById(R.id.delete_btn);
delete_btn.setTag(view);
delete_btn.setOnClickListener(new View.OnClickListener() {
#Override
public void onClick(View v) {
View rowview=(View)v.getTag();
memID_tv = (TextView)rowview.findViewById(R.id.member_id);
memName_tv = (TextView)rowview.findViewById(R.id.member_name);
}
});
Use view instead of v
memID_tv = (TextView)view.findViewById(R.id.member_id);
In bindview try this-
if (view == null) {
view = inflater.inflate(R.layout.single_row_item, parent, null);
}
TextView textViewPersonName = (TextView) view.findViewById(R.id.tv_person_name);
textViewPersonName.setText(cursor.getString(cursor.getColumnIndex(cursor.getColumnName(1))));
delete_btn=(Button)view.findViewById(R.id.delete_btn);
.
.
.
you are getting the view from clicked view, but you have to get the views from the root view.
memID_tv = (TextView)v. findViewById(R.id.member_id);
memName_tv = (TextView)v.findViewById(R.id.member_name);
change these lines into this:
memID_tv = (TextView)view. findViewById(R.id.member_id);
memName_tv = (TextView)view.findViewById(R.id.member_name);

java.lang.runtimeexception unable to start activity componentinfo java.lang.nullpointerexception android

im making a simple calories calculator and it gives me that error, i already reviewed the code and searched here for the solution but im not able to see why is not running.
I thought it was because i had not initialized the variable, so i did it and still got the same error, maybe is something with the spinners, im new on using spinners
here is the code:
public class CaloriesCalculator extends ActionBarActivity {
EditText etAge, etWeight, etHeight;
Button btnCalculate;
TextView tvResult;
Spinner spinnerGender, spinnerActivity;
String itemGender, itemActivity;
int Height=0;
int Weight=0;
int Age=0;;
double bmr=0.0;
double tdee=0.0;
String result;
#Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.caloriescalculator);
spinnerGender=(Spinner)findViewById(R.id.spinnerGender);
spinnerActivity=(Spinner)findViewById(R.id.spinnerActivity);
etAge=(EditText)findViewById(R.id.etAge);
etWeight=(EditText)findViewById(R.id.etWeight);
etHeight=(EditText)findViewById(R.id.etHeight);
tvResult=(TextView)findViewById(R.id.tvResult);
List<String> list = new ArrayList<String>();
list.add("Male");
list.add("Female");
ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_dropdown_item, list );
dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinnerGender.setAdapter(dataAdapter);
List<String> list2 = new ArrayList<String>();
list.add("Sedentary");
list.add("Lightly Active");
list.add("Moderalety Active");
list.add("Very Active");
list.add("Extremely Active");
ArrayAdapter<String> dataAdapter2 = new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_dropdown_item, list2 );
dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinnerActivity.setAdapter(dataAdapter2);
btnCalculate.setOnClickListener(new OnClickListener() {
#Override
public void onClick(View v) {
spinnerGender.setOnItemSelectedListener(new OnItemSelectedListener() {
#Override
public void onItemSelected(AdapterView<?> parent,
View view, int position, long id) {
}
#Override
public void onNothingSelected(AdapterView<?> parent) {
// TODO Auto-generated method stub
}
});
spinnerActivity.setOnItemSelectedListener(new OnItemSelectedListener() {
#Override
public void onItemSelected(AdapterView<?> parent,
View view, int position, long id) {
// TODO Auto-generated method stub
}
#Override
public void onNothingSelected(AdapterView<?> parent) {
// TODO Auto-generated method stub
}
});
itemGender=String.valueOf(spinnerGender.getSelectedItem());
itemActivity=String.valueOf(spinnerActivity.getSelectedItem());
if(itemGender=="Male"){
Weight=Integer.parseInt(etWeight.getText().toString());
Height=Integer.parseInt(etHeight.getText().toString());
Age=Integer.parseInt(etAge.getText().toString());
if(itemActivity=="Sedentary"){
bmr=66+((13.7 * Weight)+(5*Height))-(6.8*Age);
tdee=bmr*1.2;
}
else if(itemActivity=="Lightly Active"){
bmr=66+((13.7 * Weight)+(5*Height))-(6.8*Age);
tdee=bmr*1.375;
}
else if(itemActivity=="Moderalety Active"){
bmr=66+((13.7 * Weight)+(5*Height))-(6.8*Age);
tdee=bmr*1.55;
}
else if(itemActivity=="Very Active"){
bmr=66+((13.7 * Weight)+(5*Height))-(6.8*Age);
tdee=bmr*1.725;
}
else if(itemActivity=="Extremely Active"){
bmr=66+((13.7 * Weight)+(5*Height))-(6.8*Age);
tdee=bmr*1.9;
}
}
else if(itemGender=="Female") {
Weight=Integer.parseInt(etWeight.getText().toString());
Height=Integer.parseInt(etHeight.getText().toString());
Age=Integer.parseInt(etAge.getText().toString());
if(itemActivity=="Sedentary"){
bmr=655+((9.6*Weight)+(1.8*Height))-(4.7*Age);
tdee=bmr*1.2;
}
else if(itemActivity=="Lightly Active"){
bmr=655+((9.6*Weight)+(1.8*Height))-(4.7*Age);
tdee=bmr*1.375;
}
else if(itemActivity=="Moderalety Active"){
bmr=655+((9.6*Weight)+(1.8*Height))-(4.7*Age);
tdee=bmr*1.55;
}
else if(itemActivity=="Very Active"){
bmr=655+((9.6*Weight)+(1.8*Height))-(4.7*Age);
tdee=bmr*1.725;
}
else if(itemActivity=="Extremely Active"){
bmr=655+((9.6*Weight)+(1.8*Height))-(4.7*Age);
tdee=bmr*1.9;
}
}
result=Double.toString(tdee);
tvResult.setText(result);
}
});
}
#Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
#Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
logcat:
11-28 17:20:05.501: E/AndroidRuntime(1455): FATAL EXCEPTION: main
11-28 17:20:05.501: E/AndroidRuntime(1455): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.app.calculadoracalorias/com.app.calculadoracalorias.CaloriesCalculator}: java.lang.NullPointerException
11-28 17:20:05.501: E/AndroidRuntime(1455): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2211)
11-28 17:20:05.501: E/AndroidRuntime(1455): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261)
11-28 17:20:05.501: E/AndroidRuntime(1455): at android.app.ActivityThread.access$600(ActivityThread.java:141)
11-28 17:20:05.501: E/AndroidRuntime(1455): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256)
11-28 17:20:05.501: E/AndroidRuntime(1455): at android.os.Handler.dispatchMessage(Handler.java:99)
11-28 17:20:05.501: E/AndroidRuntime(1455): at android.os.Looper.loop(Looper.java:137)
11-28 17:20:05.501: E/AndroidRuntime(1455): at android.app.ActivityThread.main(ActivityThread.java:5103)
11-28 17:20:05.501: E/AndroidRuntime(1455): at java.lang.reflect.Method.invokeNative(Native Method)
11-28 17:20:05.501: E/AndroidRuntime(1455): at java.lang.reflect.Method.invoke(Method.java:525)
11-28 17:20:05.501: E/AndroidRuntime(1455): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
11-28 17:20:05.501: E/AndroidRuntime(1455): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
11-28 17:20:05.501: E/AndroidRuntime(1455): at dalvik.system.NativeStart.main(Native Method)
11-28 17:20:05.501: E/AndroidRuntime(1455): Caused by: java.lang.NullPointerException
11-28 17:20:05.501: E/AndroidRuntime(1455): at com.app.calculadoracalorias.CaloriesCalculator.onCreate(CaloriesCalculator.java:67)
11-28 17:20:05.501: E/AndroidRuntime(1455): at android.app.Activity.performCreate(Activity.java:5133)
11-28 17:20:05.501: E/AndroidRuntime(1455): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
11-28 17:20:05.501: E/AndroidRuntime(1455): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2175)
11-28 17:20:05.501: E/AndroidRuntime(1455): ... 11 more
11-28 17:24:42.341: D/AndroidRuntime(1507): Shutting down VM
11-28 17:24:42.341: W/dalvikvm(1507): threadid=1: thread exiting with uncaught exception (group=0x41465700)
11-28 17:24:42.371: E/AndroidRuntime(1507): FATAL EXCEPTION: main
11-28 17:24:42.371: E/AndroidRuntime(1507): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.app.calculadoracalorias/com.app.calculadoracalorias.CaloriesCalculator}: java.lang.NullPointerException
11-28 17:24:42.371: E/AndroidRuntime(1507): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2211)
11-28 17:24:42.371: E/AndroidRuntime(1507): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261)
11-28 17:24:42.371: E/AndroidRuntime(1507): at android.app.ActivityThread.access$600(ActivityThread.java:141)
11-28 17:24:42.371: E/AndroidRuntime(1507): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256)
11-28 17:24:42.371: E/AndroidRuntime(1507): at android.os.Handler.dispatchMessage(Handler.java:99)
11-28 17:24:42.371: E/AndroidRuntime(1507): at android.os.Looper.loop(Looper.java:137)
11-28 17:24:42.371: E/AndroidRuntime(1507): at android.app.ActivityThread.main(ActivityThread.java:5103)
11-28 17:24:42.371: E/AndroidRuntime(1507): at java.lang.reflect.Method.invokeNative(Native Method)
11-28 17:24:42.371: E/AndroidRuntime(1507): at java.lang.reflect.Method.invoke(Method.java:525)
11-28 17:24:42.371: E/AndroidRuntime(1507): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
11-28 17:24:42.371: E/AndroidRuntime(1507): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
11-28 17:24:42.371: E/AndroidRuntime(1507): at dalvik.system.NativeStart.main(Native Method)
11-28 17:24:42.371: E/AndroidRuntime(1507): Caused by: java.lang.NullPointerException
11-28 17:24:42.371: E/AndroidRuntime(1507): at com.app.calculadoracalorias.CaloriesCalculator.onCreate(CaloriesCalculator.java:70)
11-28 17:24:42.371: E/AndroidRuntime(1507): at android.app.Activity.performCreate(Activity.java:5133)
11-28 17:24:42.371: E/AndroidRuntime(1507): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
11-28 17:24:42.371: E/AndroidRuntime(1507): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2175)
11-28 17:24:42.371: E/AndroidRuntime(1507): ... 11 more
Yout btnCalculate is null, you should initialize before doing the onclickListener:
btnCalculate = (Button)findViewById(R.id.btnCalculate); //your id
Also note that you are initializing the dataAdapter2 but actually you are using dataAdapert, and list2 dont have any elements, because you declare it but u are filling always list1

Issue with adding DatePickerDialog to project

I follow this example about adding DatePicker to my app when using Android Studio.
import android.support.v4.app.DialogFragment;
public static class DatePickerFragment extends DialogFragment
implements DatePickerDialog.OnDateSetListener {
#Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
// Use the current date as the default date in the picker
final Calendar c = Calendar.getInstance();
int year = c.get(Calendar.YEAR);
int month = c.get(Calendar.MONTH);
int day = c.get(Calendar.DAY_OF_MONTH);
// Create a new instance of DatePickerDialog and return it
return new DatePickerDialog(getActivity(), this, year, month, day);
}
public void onDateSet(DatePicker view, int year, int month, int day) {
// Do something with the date chosen by the user
}
}
The problem is that I can not even compile the project. Here is the error:
Error:(6, 42) java: cannot find symbol
symbol: class DialogFragment
Error:(7, 36) java: package DatePickerDialog does not exist
I tried import android.support.v4.app.DialogFragment;, but it does not exist. Also I set my project to API 11 as that is minimum api level for this control. Any ideas?
I got datePicker somehow working but now I have error when opening activity that contains datepicker:
07-16 18:17:36.274 1822-1822/mycalories.com.jalle.mycalories D/AndroidRuntime﹕ Shutting down VM
07-16 18:17:36.274 1822-1822/mycalories.com.jalle.mycalories W/dalvikvm﹕ threadid=1: thread exiting with uncaught exception (group=0xa4db2b20)
07-16 18:17:36.274 1822-1822/mycalories.com.jalle.mycalories E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: mycalories.com.jalle.mycalories, PID: 1822
java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{mycalories.com.jalle.mycalories/mycalories.com.jalle.mycalories.MealsEditActivity}: java.lang.NullPointerException
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2121)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
at android.app.ActivityThread.access$800(ActivityThread.java:135)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5017)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.NullPointerException
at android.app.Activity.findViewById(Activity.java:1884)
at mycalories.com.jalle.mycalories.MealsEditActivity.<init>(MealsEditActivity.java:23)
at java.lang.Class.newInstanceImpl(Native Method)
at java.lang.Class.newInstance(Class.java:1208)
at android.app.Instrumentation.newActivity(Instrumentation.java:1061)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2112)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
            at android.app.ActivityThread.access$800(ActivityThread.java:135)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:136)
            at android.app.ActivityThread.main(ActivityThread.java:5017)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:515)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
            at dalvik.system.NativeStart.main(Native Method)
and here is the activity
package mycalories.com.jalle.mycalories;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.DialogFragment;
import android.support.v4.app.FragmentActivity;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import com.parse.Parse;
import com.parse.ParseUser;
//import android.app.DialogFragment;
public class MealsEditActivity extends FragmentActivity implements mycalories.com.jalle.mycalories.DatePickerFragment.TheListener{
public final EditText txtDate=(EditText) findViewById(R.id.txtDate);
#Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.meals_edit);
Button btnDate = (Button) findViewById(R.id.btnDate);
btnDate.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Utils.MyToast("btnDate", getApplicationContext());
DialogFragment newFragment = new com.jalle.mycalories.DatePickerFragment();
newFragment.show(getSupportFragmentManager(), "datePicker");
}
}
);
}
public void returnDate(String date) {
// TODO Auto-generated method stub
txtDate.setText(date);
}
}
}
What is wrong with this activity ?
have you add android support library to build.gradle of your application ?
for example :
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:support-v4:+'
}
then try to rebuild it.
For exception :
put
public final EditText txtDate=(EditText) findViewById(R.id.txtDate);
this line below
setContentView(R.layout.meals_edit);

Categories