Java.lang.NullPointerException: Intenta invocar el método virtual 'int android.view.View.getImportantForAccessibility ()' en una referencia de objeto nulo

Estoy intentando armar una aplicación de lista de compras, basada en campos de entrada, ArrayList y ListView . La aplicación se basará en Fragments . Sin embargo, he encontrado un problema y no sé cómo solucionarlo.

Miré a mi alrededor en Google y StackOverflow han encontrado alguna información. Sin embargo, no lo tengo para trabajar. Ahora espero que pueda obtener ayuda con mi código.

Soy relativamente inexperto en el desarrollo de Android.

Gracias por adelantado

Main.java

 import java.util.ArrayList; import android.app.Fragment; import android.app.FragmentManager; import android.app.FragmentTransaction; import android.os.Bundle; import android.support.v4.app.FragmentActivity; import android.view.Menu; import android.view.MenuItem; public class Main extends FragmentActivity { ArrayList<Detail> items = new ArrayList<Detail>(); FragmentManager FM; FragmentTransaction FT; Input input = new Input(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); replaceFragment(R.id.container, input); } public void replaceFragment(int container, Fragment fragment){ FM = getFragmentManager(); FT = FM.beginTransaction(); FT.replace(container, fragment); FT.commit(); } @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); } } 

ListAdapter.java

 public class ListAdapter extends BaseAdapter { Context context; ArrayList<Detail> items; public ListAdapter(Context context, ArrayList<Detail> items) { this.context = context; this.items = items; } @Override public int getCount() { return items.size(); } @Override public Object getItem(int position) { return items.get(position); } @Override public long getItemId(int position) { return items.indexOf(getItem(position)); } @Override public View getView(int position, View convertView, ViewGroup parent) { if(convertView == null){ LayoutInflater lInflater = (LayoutInflater)context.getSystemService( Activity.LAYOUT_INFLATER_SERVICE); convertView = lInflater.inflate(R.layout.list_row, null); } TextView title = (TextView)convertView.findViewById(R.id.itemTitle); CheckBox done = (CheckBox)convertView.findViewById(R.id.itemDone); Detail detail_position = items.get(position); title.setText(detail_position.getTitle()); done.setChecked(detail_position.isDone()); return null; } } 

List.java

 import java.util.ArrayList; import android.app.ListFragment; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; public class List extends ListFragment implements OnItemClickListener{ ArrayList<Detail> items; ListAdapter adapter; private onClickListener OCL; interface onClickListener{ public void onItemClick(int id); } public List(ArrayList<Detail> items) { this.items = items; } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View root = inflater.inflate(R.layout.list_layout, container, false); return root; } @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); if(items != null){ adapter = new ListAdapter(getActivity(), items); setListAdapter(adapter); getListView().setOnItemClickListener(this); } } @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { if(OCL != null){ OCL.onItemClick(position); } } } 

List_layout.xml

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/LinearLayout1" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <ListView android:id="@+id/android:list" android:layout_width="match_parent" android:layout_height="match_parent" > </ListView> </LinearLayout> 

List_row

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="horizontal" android:padding="10dp" > <TextView android:id="@+id/itemTitle" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="0.96" android:text="Medium Text" android:textAppearance="?android:attr/textAppearanceMedium" /> <CheckBox android:id="@+id/itemDone" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Done" /> </LinearLayout> 

Activity_main.xml

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/container" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.example.com.hermods.lab2_2.Main" > </RelativeLayout> 

Iniciar sesión

 02-19 09:10:47.421: E/AndroidRuntime(12745): Process: com.example.com.hermods.lab2_2, PID: 12745 02-19 09:10:47.421: E/AndroidRuntime(12745): java.lang.NullPointerException: Attempt to invoke virtual method 'int android.view.View.getImportantForAccessibility()' on a null object reference 02-19 09:10:47.421: E/AndroidRuntime(12745): at android.widget.AbsListView.obtainView(AbsListView.java:2360) 02-19 09:10:47.421: E/AndroidRuntime(12745): at android.widget.ListView.makeAndAddView(ListView.java:1864) 02-19 09:10:47.421: E/AndroidRuntime(12745): at android.widget.ListView.fillDown(ListView.java:698) 02-19 09:10:47.421: E/AndroidRuntime(12745): at android.widget.ListView.fillFromTop(ListView.java:759) 02-19 09:10:47.421: E/AndroidRuntime(12745): at android.widget.ListView.layoutChildren(ListView.java:1673) 02-19 09:10:47.421: E/AndroidRuntime(12745): at android.widget.AbsListView.onLayout(AbsListView.java:2148) 02-19 09:10:47.421: E/AndroidRuntime(12745): at android.view.View.layout(View.java:15596) 02-19 09:10:47.421: E/AndroidRuntime(12745): at android.view.ViewGroup.layout(ViewGroup.java:4966) 02-19 09:10:47.421: E/AndroidRuntime(12745): at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1703) 02-19 09:10:47.421: E/AndroidRuntime(12745): at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1557) 02-19 09:10:47.421: E/AndroidRuntime(12745): at android.widget.LinearLayout.onLayout(LinearLayout.java:1466) 02-19 09:10:47.421: E/AndroidRuntime(12745): at android.view.View.layout(View.java:15596) 02-19 09:10:47.421: E/AndroidRuntime(12745): at android.view.ViewGroup.layout(ViewGroup.java:4966) 02-19 09:10:47.421: E/AndroidRuntime(12745): at android.widget.RelativeLayout.onLayout(RelativeLayout.java:1076) 02-19 09:10:47.421: E/AndroidRuntime(12745): at android.view.View.layout(View.java:15596) 02-19 09:10:47.421: E/AndroidRuntime(12745): at android.view.ViewGroup.layout(ViewGroup.java:4966) 02-19 09:10:47.421: E/AndroidRuntime(12745): at android.widget.FrameLayout.layoutChildren(FrameLayout.java:573) 02-19 09:10:47.421: E/AndroidRuntime(12745): at android.widget.FrameLayout.onLayout(FrameLayout.java:508) 02-19 09:10:47.421: E/AndroidRuntime(12745): at android.view.View.layout(View.java:15596) 02-19 09:10:47.421: E/AndroidRuntime(12745): at android.view.ViewGroup.layout(ViewGroup.java:4966) 02-19 09:10:47.421: E/AndroidRuntime(12745): at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1703) 02-19 09:10:47.421: E/AndroidRuntime(12745): at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1557) 02-19 09:10:47.421: E/AndroidRuntime(12745): at android.widget.LinearLayout.onLayout(LinearLayout.java:1466) 02-19 09:10:47.421: E/AndroidRuntime(12745): at android.view.View.layout(View.java:15596) 02-19 09:10:47.421: E/AndroidRuntime(12745): at android.view.ViewGroup.layout(ViewGroup.java:4966) 02-19 09:10:47.421: E/AndroidRuntime(12745): at android.widget.FrameLayout.layoutChildren(FrameLayout.java:573) 02-19 09:10:47.421: E/AndroidRuntime(12745): at android.widget.FrameLayout.onLayout(FrameLayout.java:508) 02-19 09:10:47.421: E/AndroidRuntime(12745): at android.view.View.layout(View.java:15596) 02-19 09:10:47.421: E/AndroidRuntime(12745): at android.view.ViewGroup.layout(ViewGroup.java:4966) 02-19 09:10:47.421: E/AndroidRuntime(12745): at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2072) 02-19 09:10:47.421: E/AndroidRuntime(12745): at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1829) 02-19 09:10:47.421: E/AndroidRuntime(12745): at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1054) 02-19 09:10:47.421: E/AndroidRuntime(12745): at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5779) 02-19 09:10:47.421: E/AndroidRuntime(12745): at android.view.Choreographer$CallbackRecord.run(Choreographer.java:767) 02-19 09:10:47.421: E/AndroidRuntime(12745): at android.view.Choreographer.doCallbacks(Choreographer.java:580) 02-19 09:10:47.421: E/AndroidRuntime(12745): at android.view.Choreographer.doFrame(Choreographer.java:550) 02-19 09:10:47.421: E/AndroidRuntime(12745): at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:753) 02-19 09:10:47.421: E/AndroidRuntime(12745): at android.os.Handler.handleCallback(Handler.java:739) 02-19 09:10:47.421: E/AndroidRuntime(12745): at android.os.Handler.dispatchMessage(Handler.java:95) 02-19 09:10:47.421: E/AndroidRuntime(12745): at android.os.Looper.loop(Looper.java:135) 02-19 09:10:47.421: E/AndroidRuntime(12745): at android.app.ActivityThread.main(ActivityThread.java:5221) 02-19 09:10:47.421: E/AndroidRuntime(12745): at java.lang.reflect.Method.invoke(Native Method) 02-19 09:10:47.421: E/AndroidRuntime(12745): at java.lang.reflect.Method.invoke(Method.java:372) 02-19 09:10:47.421: E/AndroidRuntime(12745): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899) 02-19 09:10:47.421: E/AndroidRuntime(12745): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694) 

En su public View getView método public View getView return null; Para return convertView; .

#use return convertView;

Código:

  public View getView(final int position, View convertView, ViewGroup parent) { convertView = null; if (convertView == null) { LayoutInflater mInflater = (LayoutInflater) context .getSystemService(Activity.LAYOUT_INFLATER_SERVICE); convertView = mInflater.inflate(R.layout.list_item, null); TextView tv = (TextView) convertView.findViewById(R.id.name); Button rm_btn = (Button) convertView.findViewById(R.id.rm_btn); Model m = modelList.get(position); tv.setText(m.getName()); // click listiner for remove button คลิกลบปุ่ม rm_btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { modelList.remove(position); notifyDataSetChanged(); } }); } ///#use return convertView; return convertView; } 

En su constructor de la clase baseadapter intento inicializar LayoutInflater , normalmente yo preferí esta manera,

 public ClassBaseAdapter(Context context,ArrayList<Integer> listLoanAmount) { this.context = context; this.listLoanAmount = listLoanAmount; this.layoutInflater = LayoutInflater.from(context); } 

En la parte superior de la clase crear LayoutInflater variable, espero que esto le ayudará

  • FindViewById vs Ver patrón de soporte en el adaptador ListView
  • ScrollView distrubing ListView dentro de LinearLayout
  • Centrarse en EditText en ListView cuando los descendientes de bloque (Android)
  • Cómo crear android listview como android google cromo pestaña
  • Android: diseño predeterminado para listitem que contiene el título y el subtítulo
  • Linkify, ListView y ActionMode. El texto regular ya no se puede hacer clic
  • Pérdida de memoria a pesar de usar weakreference
  • Lista de preferencias sólo muestra el primer elemento
  • Cómo utilizar SparseArray como una fuente para el adaptador?
  • RequestLayout () incorrectamente llamado por android.widget.RelativeLayout android
  • ¿Cómo puedo añadir una línea 1dp a la parte inferior de mi célula textview (no un diseño de tabla)
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.