-1

Я слежу за учебник, но я думаю, что это устарело, у меня есть настройки все, что я думаю, что мне нужно для ListView, чтобы работать, но когда я запускаю его, он говорит -Как настроить customListView в Android?

java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.View android.view.View.findViewById(int)' on a null object reference 
                at youknow.smscontrol.jason.testexpandiblelistview.CoustmListViewSettup.getView(CoustmListViewSettup.java:29) 

Вот мой XML:

<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:textAppearance="?android:attr/textAppearanceMedium" 
    android:text="Medium Text" 
    android:textColor="@android:color/white" 
    android:id="@+id/CMDnameItem" 
    android:padding="10dp" 
    android:layout_alignParentTop="true" 
    android:layout_alignParentStart="true"/> 

<ImageView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:src="@drawable/item_launch" 
    android:id="@+id/LaunchArrow" 
    android:layout_alignBottom="@+id/CMDnameItem" 
    android:layout_alignParentEnd="true" 
    android:layout_alignTop="@+id/CMDnameItem"/> 

Вот мой основной код:

public void SettupIds(){ 
    listView = (ListView) findViewById(R.id.listView); 
} 

public void SetupAndDisplayListView(){ 
    String[] CMDlist = {"Launch App Settings", "Alarm Settings", "Lock Screen Settings", "Display Message Settings", "Take Picture Settings"}; 
    ListAdapter CMDlistAdapter = new CustomListViewSetup(getApplicationContext(), CMDlist); 
    listView.setAdapter(CMDlistAdapter); 
} 

Вот мой класс customListViewSetup:

class CustomListViewSetup extends ArrayAdapter<String>{ 

public CustomListViewSetup(Context context, String[] CMDList){ 
    super(context,R.layout.coustom_list_item ,CMDList); 
} 

@Override 
public View getView(int position, View convertView, ViewGroup parent){ 

    LayoutInflater CMDlistInflater = LayoutInflater.from(getContext()); 
    View coustomView = CMDlistInflater.inflate(R.layout.coustom_list_item, parent, false); 

    String CurrentCMDlistitem = getItem(position); 
     LINE 29>> TextView CMDlist = (TextView) convertView.findViewById(R.id.CMDnameItem); 
    ImageView CMDLaunchArrow = (ImageView) convertView.findViewById(R.id.LaunchArrow); 

    CMDlist.setText(CurrentCMDlistitem); 
    CMDLaunchArrow.setBackgroundResource(R.drawable.item_launch); 




    return coustomView; 
} 
} 

заблаговременно!

ответ

1

Заменить строки

TextView CMDlist = (TextView) convertView.findViewById(R.id.CMDnameItem); 
ImageView CMDLaunchArrow = (ImageView) convertView.findViewById(R.id.LaunchArrow); 

от

TextView CMDlist = (TextView) coustomView.findViewById(R.id.CMDnameItem); 
    ImageView CMDLaunchArrow = (ImageView) coustomView.findViewById(R.id.LaunchArrow); 
0
LayoutInflater CMDlistInflater = LayoutInflater.from(getContext()); 
View coustomView = CMDlistInflater.inflate(R.layout.coustom_list_item, parent, false); 

удалить эту линию

Смежные вопросы