java - Android Listview质疑 'android.R.id.list'

标签 java android listview

我看过和我的情况相同的案例,但可以克服它:( 当我编译程序时,我得到了“你的内容必须有一个 id 属性为'android.R.id.list'的 ListView”

这是 logcat 和代码

日志猫:

04-20 03:42:53.787: E/AndroidRuntime(2547): FATAL EXCEPTION: main
04-20 03:42:53.787: E/AndroidRuntime(2547): java.lang.RuntimeException:   Unable to start activity ComponentInfo{com.androidbegin.menuviewpagertutorial/com.android.GoTrip.ListFindResult}: java.lang.RuntimeException: Your content must have a ListView whose id attribute is 'android.R.id.list'
04-20 03:42:53.787: E/AndroidRuntime(2547):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2211)
04-20 03:42:53.787: E/AndroidRuntime(2547):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261)
04-20 03:42:53.787: E/AndroidRuntime(2547):     at android.app.ActivityThread.access$600(ActivityThread.java:141)
04-20 03:42:53.787: E/AndroidRuntime(2547):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256)
04-20 03:42:53.787: E/AndroidRuntime(2547):     at android.os.Handler.dispatchMessage(Handler.java:99)
04-20 03:42:53.787: E/AndroidRuntime(2547):     at android.os.Looper.loop(Looper.java:137)
04-20 03:42:53.787: E/AndroidRuntime(2547):     at android.app.ActivityThread.main(ActivityThread.java:5103)
04-20 03:42:53.787: E/AndroidRuntime(2547):     at java.lang.reflect.Method.invokeNative(Native Method)
04-20 03:42:53.787: E/AndroidRuntime(2547):     at java.lang.reflect.Method.invoke(Method.java:525)
04-20 03:42:53.787: E/AndroidRuntime(2547):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
04-20 03:42:53.787: E/AndroidRuntime(2547):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
04-20 03:42:53.787: E/AndroidRuntime(2547):     at dalvik.system.NativeStart.main(Native Method)
04-20 03:42:53.787: E/AndroidRuntime(2547): Caused by: java.lang.RuntimeException: Your content must have a ListView whose id attribute is 'android.R.id.list'
04-20 03:42:53.787: E/AndroidRuntime(2547):     at android.app.ListActivity.onContentChanged(ListActivity.java:243)
04-20 03:42:53.787: E/AndroidRuntime(2547):     at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:270)
04-20 03:42:53.787: E/AndroidRuntime(2547):     at android.app.Activity.setContentView(Activity.java:1895)
04-20 03:42:53.787: E/AndroidRuntime(2547):     at com.android.GoTrip.ListFindResult.onCreate(ListFindResult.java:59)
04-20 03:42:53.787: E/AndroidRuntime(2547):     at android.app.Activity.performCreate(Activity.java:5133)
04-20 03:42:53.787: E/AndroidRuntime(2547):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
04-20 03:42:53.787: E/AndroidRuntime(2547):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2175)
04-20 03:42:53.787: E/AndroidRuntime(2547):     ... 11 more
04-20 03:42:55.839: I/Process(2547): Sending signal. PID: 2547 SIG: 9

ListFindResult.java

   @Override
    public void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
        setContentView(R.layout.listfind);
        Intent myIntent = getIntent(); 

    searchkey = myIntent.getStringExtra("name");
    findList = new ArrayList<HashMap<String, String>>();

    new Finding().execute();

    ListView lv = getListView();

    lv.setOnItemClickListener(new OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> parent, View view,
                int position, long id) {
            String iid = ((TextView) view.findViewById(R.id.kode)).getText()
                    .toString();

        }
    });

     }

    @Override
    protected void onPreExecute() {
        super.onPreExecute();
        pDialog = new ProgressDialog(ListFindResult.this);
        pDialog.setMessage("Loading locations...");
        pDialog.setIndeterminate(false);
        pDialog.setCancelable(false);
        pDialog.show();
    }

    protected String doInBackground(String... args) {
        List<NameValuePair> params = new ArrayList<NameValuePair>();
        params.add(new BasicNameValuePair("name", searchkey));
        JSONObject json = jParser.makeHttpRequest(url_search, "GET", params);

        Log.d("Search trips: ", json.toString());

        try {
            int success = json.getInt(TAG_SUCCESS);

            if (success == 1) {

                ListLokasi = json.getJSONArray(TAG_ID);


                for (int i = 0; i < ListLokasi.length(); i++) {
                    JSONObject c = ListLokasi.getJSONObject(i);

                    String textview1 = c.getString(TAG_ID);

                    HashMap<String, String> map = new HashMap<String, String>();

                    map.put(TAG_ID, textview1);
                    findList.add(map);
                }
            } else {
                }
        } catch (JSONException e) {
            e.printStackTrace();
        }

        return null;
    }

    protected void onPostExecute(String file_url) {
        pDialog.dismiss();
        runOnUiThread(new Runnable() {
            public void run() {
                ListAdapter adapter = new SimpleAdapter(
                        ListFindResult.this, findList,
                        R.layout.daftarlokasi, new String[] { TAG_ID},
                        new int[] { R.id.textview1});
                setListAdapter(adapter);
            }
        });

listfind.xml

 <?xml version="1.0" encoding="utf-8"?>
 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

   android:layout_width="match_parent"
   android:layout_height="match_parent" >

   <ListView android:id="@+id/listview" 
       android:layout_width="match_parent"
       android:layout_height="match_parent">

   </ListView>

</RelativeLayout>

最佳答案

由于您使用的是 ListActivity,因此您必须使用 ID @android:id/list 而不是 xml 文件中的自定义 ID。

要解决此问题,请更改 listfind.xml:

<ListView android:id="@+id/listview" 
       android:layout_width="match_parent"
       android:layout_height="match_parent">
</ListView>

<ListView android:id="@android:id/list" 
       android:layout_width="match_parent"
       android:layout_height="match_parent">
</ListView>

关于java - Android Listview质疑 'android.R.id.list',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29735804/

相关文章:

java - obj.notify() 似乎不起作用

java - 使用带有通配符的泛型类型作为它自己的类型

android - 如何让Android Gradle构建写入调试APK的文件

android - ListView 无法正常显示

ios - react native ListView 添加项目不起作用

java - DLFileEntry在内存中的大小

java - 使用迭代计算幂

java - 使用 Ant 构建 jar 文件(htsjdk jar)

php - 是否有可以突出显示 PHP 标签的文本/代码编辑器?

android - 在 ListView 中选择时更改 ListItem View