我用一个带有ListView命名列表的xml打开ListActivity。我有一个数组适配器设置和工作在另一个活动(虽然不是列表活动,只是一个正常的活动),它一切正常。当我尝试打开此列表活动时,我收到一条错误消息,说我需要一个ID为android.R.id.list的ListView。我有ListView但是。我的问题是什么?
我的AlertDialog代码我正试图开始工作。
public void onListItemClick(ListView parent,View v,int position, 长id)
{
Context mContext = getApplicationContext();
Dialog dialog = new Dialog(mContext);
dialog.setContentView(R.layout.custom_dialog);
dialog.setTitle(getText(position));
ImageView image = (ImageView) alertDialog.findViewById(R.id.image);
image.setImageResource(R.drawable.hydrogen);
}
这是我试图让它工作的另一个代码
public void onListItemClick(ListView parent, View v, int position,
long id) {
new AlertDialog.Builder(Anions.this);
alertDialog.setContentView(R.layout.custom_dialog);
alertDialog.setTitle(anions[position]);
ImageView image = (ImageView) alertDialog.findViewById(R.id.image);
image.setImageResource(R.drawable.hydrogen);
alertDialog.setButton("Done", new DialogInterface.OnClickListener(){
public void onClick(DialogInterface dialog, int which){
return;
}
}
);
alertDialog.show();
}
答案 0 :(得分:2)
您的列表视图必须将ID声明为android:id="@android:id/list"
,以便Android自动绑定到它。
<ListView android:id="@android:id/list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"/>
请注意,您没有定义新的ID,而是使用Android知道的ID。这允许您在布局文件中有许多不同的布局元素,但android可以找到包含列表元素的布局元素。
这是documentation for ListActivity的引用。
ListActivity具有默认布局,该布局由屏幕中央的单个全屏列表组成。但是,如果需要,可以通过在onCreate()中使用setContentView()设置自己的视图布局来自定义屏幕布局。为此,您自己的视图必须包含一个ID为“@android:id / list”的ListView对象(如果它在代码中则列出)
同样的情况也适用于在同一个文件中使用文本视图(ID为“空”),如果您的ListView为空,Android将显示该文件。 e.g。
<TextView android:id="@android:id/empty"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="No data"/>
答案 1 :(得分:0)
确定。所以我终于找到了我需要的东西,谁知道有多少网站。无论如何,这里的代码最终适用于那些遇到这样的问题的其他人。
public void onListItemClick(ListView parent,View v,int position,long id){
如果 ( “乙酸酯” .equals(阴离子[位置]))
{对话框对话框=新对话框(本);
dialog.setContentView(R.layout.custom_dialog); dialog.setTitle( “乙酸酯”);
dialog.setCancelable(真);ImageView img =(ImageView) dialog.findViewById(R.id.ImageView01); img.setImageResource(R.drawable.element_el);
dialog.show();
}
我的最终代码可能会有所不同,但这有效。有关此内容的更多信息,请转至http://www.androidear.com/developers/how-to-display-a-custom-dialog-in-your-android-application/comment-page-1/#comment-1570