ListView 对话框中的空指针异常
Null Pointer Exception on ListView Dialog
我尝试在 editText 上使用 onClick 创建一个自定义的简单 listView 对话框。但它一直在崩溃,logcat 在我的 setAdapter 上提到 java 空指针异常。
这是我的代码
kadarInput.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
final Dialog dialog = new Dialog(context);
dialog.setContentView(R.layout.custom_listview_dialog);
dialog.setTitle("Kadar Emas");
ArrayList<String> kadarList = new ArrayList<String>();
kadarList.addAll( Arrays.asList(kadar) );
ArrayAdapter<String> arrayItem = new ArrayAdapter<String>(context,
android.R.layout.simple_list_item_1, kadarList);
ListView kadarListView = (ListView) findViewById(R.id.kadar_list);
kadarListView.setAdapter(arrayItem);
kadarListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
kadarInput.setText(kadarEmas[position]);
dialog.dismiss();
}
});
dialog.show();
}
});
这是自定义对话框 xml
<LinearLayout 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:orientation="vertical" >
<ListView
android:id="@+id/kadar_list"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:divider="@null"
android:dividerHeight="0dp"/>
</LinearLayout>
你们能告诉我哪里出了问题吗?
任何帮助将不胜感激。
谢谢:)
您的 ListView 位于 Dialog 中。所以,
而不是
ListView kadarListView = (ListView) findViewById(R.id.kadar_list);
使用
ListView kadarListView = (ListView) dialog.findViewById(R.id.kadar_list);
我尝试在 editText 上使用 onClick 创建一个自定义的简单 listView 对话框。但它一直在崩溃,logcat 在我的 setAdapter 上提到 java 空指针异常。
这是我的代码
kadarInput.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
final Dialog dialog = new Dialog(context);
dialog.setContentView(R.layout.custom_listview_dialog);
dialog.setTitle("Kadar Emas");
ArrayList<String> kadarList = new ArrayList<String>();
kadarList.addAll( Arrays.asList(kadar) );
ArrayAdapter<String> arrayItem = new ArrayAdapter<String>(context,
android.R.layout.simple_list_item_1, kadarList);
ListView kadarListView = (ListView) findViewById(R.id.kadar_list);
kadarListView.setAdapter(arrayItem);
kadarListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
kadarInput.setText(kadarEmas[position]);
dialog.dismiss();
}
});
dialog.show();
}
});
这是自定义对话框 xml
<LinearLayout 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:orientation="vertical" >
<ListView
android:id="@+id/kadar_list"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:divider="@null"
android:dividerHeight="0dp"/>
</LinearLayout>
你们能告诉我哪里出了问题吗? 任何帮助将不胜感激。 谢谢:)
您的 ListView 位于 Dialog 中。所以,
而不是
ListView kadarListView = (ListView) findViewById(R.id.kadar_list);
使用
ListView kadarListView = (ListView) dialog.findViewById(R.id.kadar_list);