ListActivity错误

时间:2010-08-17 02:18:14

标签: android listview listactivity

我用一个带有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();


        }

2 个答案:

答案 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