2011-11-28 36 views
1

我有這個列表...我應該把一個複選框作爲最後一個元素(其中的單詞「通知」)...我不知道該怎麼做..因爲每個元素都有自己的圖標...但最後我得把複選框....如何在列表中插入一個複選框

enter image description here

enter code here 

公共類列表視圖擴展活動{

protected static final Intent CopyOfListview = null; 
static ListView listView; 


static public class BackgroundWorker extends AsyncTask<Void, Person, Void> { 

    @SuppressWarnings("unchecked") 
    @Override 
    protected void onPreExecute() { 
     // Prima di iniziare a inserire gli elementi svuotiamo l'adapter 
     ((ArrayAdapter<Person>) listView.getAdapter()).clear(); 
     super.onPreExecute(); 
    } 

    @Override 
    protected Void doInBackground (Void... params) { 

     // Qui dentro si possono mettere le operazioni che potrebbero 
     // rallentare il caricamento della listview, come ad sempio il 
     // caricamento da db degli oggetti 

     Person[] people = { new Person(" Privacy",null, R.drawable.freccetta) }; 
     Person[] people1 = {new Person(" Visualizzazione", null, R.drawable.freccetta)}; 
     Person[] people2= { new Person(" Notifiche", null, R.drawable.freccetta)}; 

     // riempimento casuale della lista delle persone 
     Random r = new Random(); 

     for (int i = 0; i < 1; i++) { 
      // Pubblichiamo il progresso 
      publishProgress(people); 
      publishProgress(people1); 
      publishProgress(people2); 

     } 

     return null; 
    } 

    @SuppressWarnings("unchecked") 
    @Override 
    protected void onProgressUpdate (Person... values) { 
     // Aggiungiamo il progresso pubblicato all'adapter 
     ((ArrayAdapter<Person>) listView.getAdapter()).add(values[0]); 
     super.onProgressUpdate(values); 
    } 

} 

@Override 
public void onCreate (final Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    requestWindowFeature(Window.FEATURE_NO_TITLE); 
    setContentView(R.layout.main); 


    listView = (ListView) findViewById(R.id.personListView); 

    listView.setAdapter(new PersonAdapter(this, R.layout.row_item, new ArrayList<Person>())); 

    listView.setOnItemClickListener(new OnItemClickListener() { 
     public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
      Person p = (Person) parent.getItemAtPosition(position); 

      switch(position) { 
      case 0: 
       Activity_privacy(); 
      // startActivity(CopyOfListview); 
       //onCreate1(savedInstanceState); 
// setContentView(R.layout.main1); 
      break; 
      case 1: 
      setContentView(R.layout.main2); 
      break; 
      case 2: 
      setContentView(R.layout.main3); 
      } 
      } 
    }); 

    new BackgroundWorker().execute(); 
} 


protected void Activity_privacy() 
{ 
    Intent i = new Intent(this, CopyOfListview.class); 
    startActivity(i); 

} 

}

回答

1

有沒有什麼原因加入footer view不起作用?

如果由於某種原因,這不是一個可接受的解決方案,我唯一能想到的其他事情就是創建一個實現Adapter接口的自定義類。它必須返回兩種不同的視圖類型(即,getViewTypeCount()將返回2),並根據您請求查看的位置從getView()返回不同的視圖。

0

當爲列表的最後一個元素調用getView時,是否讓PersonAdapter類返回按鈕視圖。確保getCount在您這樣做時返回正確的大小。

您也可以從適配器獲取視圖工廠集合而不是列表<人>。

相關問題