ListActivity中android:id="@+id/android:list"是啥玩意兒?

   在用LIST ACTIVITY時,如果自定義VIEW,採用setContentView()方法導入一個LAYOUT資源文件時,在這個資源文件的LISTVIEW部分的ID常採用:android:id="@+id/android:list",這是啥玩意呢?

   首先可以先參考這篇文章,入下門吧。http://blog.sina.com.cn/s/blog_908e1e4a0100v2yj.html  其實,"@+id/android:list“對應的就是:ANDROID SDK 安裝盤:\AndroidSDK\platforms\android-16\data\res\values下ids.xml文件中定義的ID資源了,也就是說,如果在LIST ACTIVITY中,如果要自己自定義LIST VIEW,那麼,這個LIST VIEW的ID,應該要設置成爲:"@+id/android:list"。

   網上一些文章講得比較明白了,不過我還是一知半解,經過自己的動手實踐,總算搞明白了,在上面導入的LAYOUT資源文件中,我將LISTVIEW的ID改爲” android:id="@+id/list"“,結果ECLIPSE的LOG CAT中用紅色提示顯示,可以看到下面灰色一行的英文提示:LSITVIEW的ID要爲:android.R.id.list,而它就是:"@+id/android:list了,呵呵。下面是截圖:

  

 

附上源代碼吧,注意,運行後,就可以在LOG CAT中看到上面的紅色提示了。

  src部分:

  

package com.mobile.infos;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;

import java.util.ArrayList;
import java.util.Map;
import java.util.HashMap;
import java.util.List;
import android.widget.ListView;
import android.widget.AdapterView;
import android.widget.SimpleAdapter;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.Toast;
import android.util.Log;
import android.content.Intent;
import android.app.ListActivity;

public class MainActivity extends ListActivity {

 private static final String TAG="eoeInforsAssistant";
 List<Map<String,Object>> list;
 
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        this.setContentView(R.layout.activity_main);
        refreshListItems();
       
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }
   
   private void refreshListItems()
   {
    list=BuildListForSimpleAdapter();
    SimpleAdapter notes=new SimpleAdapter(this,list,R.layout.item_row,
      new String[]{"name","desc"},new int[]{R.id.name,R.id.desc});
    this.setListAdapter(notes);
        
   }
   
    private List<Map<String,Object>> BuildListForSimpleAdapter()
    { 
     List<Map<String,Object>>list=new ArrayList<Map<String,Object>>(3);
     Map<String,Object> map=new HashMap<String,Object>();
        map.put("name", "系統信息");
        map.put("desc", "查看設備系統版本,運行商以及系統信息");
        list.add(map);
       
        map=new HashMap<String,Object>();
        map.put("name", "硬件信息");
        map.put("desc", "查看設備硬件信息");
        list.add(map);
       
        map=new HashMap<String,Object>();
        map.put("name", "軟件信息");
        map.put("desc", "查看軟件信息");
        list.add(map);
       
        map=new HashMap<String,Object>();
        map.put("name", "運行時信息");
        map.put("desc", "查看設備設備運行時信息");
        list.add(map);
       
        map=new HashMap<String,Object>();
        map.put("name", "文件瀏覽器");
        map.put("desc", "瀏覽查看文件");
        list.add(map);
     return list;
    }
}

 

Layout:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" >
        <ListView android:layout_width="fill_parent" android:layout_height="fill_parent"  android:id="@+id/list">
        </ListView>
 </LinearLayout>

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章