2013-01-15 104 views
0

我是Andoid新手,仍在學習。
我想在一個TabHost中的三個文件中選擇一個自定義列表視圖中的項目。一個用於Tabhost,一個用於標準列表視圖,另一個用於修改列表視圖。
下面添加的代碼正確顯示。我只是無法弄清楚如何長時間點擊顯示列表中的項目,以便我可以從列表中刪除它。Android自定義列表視圖項目選擇與Tabhost

第一個活動

public class View_categories extends TabActivity { 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.view_edit_cat); 

    TabHost tabHost = getTabHost(); 
    tabHost.addTab(tabHost.newTabSpec("tab1").setIndicator("Category").setContent(new Intent(this, Category.class))); 
    tabHost.addTab(tabHost.newTabSpec("tab2").setIndicator("Sub_Category").setContent(new Intent(this, Sub_category.class)));   
    tabHost.setCurrentTab(0); 

    } 

} 

在單獨的文件中第二個活動。

public class Category extends ListActivity { 

    List<String> cCategory; 

    public void onCreate(Bundle savedInstanceState){ 
    super.onCreate(savedInstanceState); 

    catList(); //Loads list 
    setListAdapter(new ArrayAdapter<String>(this, R.layout.list_item,cCategory)); 

    } 
} 

第三個文件中的第三個活動。

public class Sub_category extends ListActivity { 


List<String> sSub_cat; 
List<String> sCategory; 

public void onCreate(Bundle savedInstanceState){   

    super.onCreate(savedInstanceState);  
    subList();  //loads list 
    setListAdapter(new MyAdapter(this, android.R.layout.simple_list_item_1,R.id.textView1,sCategory)); 

} 

private class MyAdapter extends ArrayAdapter<String>{ 

    public MyAdapter(Context context, int resource, int textViewResourceId, 
      List<String> objects) { 
     super(context, resource, textViewResourceId, objects); 

    } 
    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 

     LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     View row = inflater.inflate(R.layout.sub_cat_list, parent, false); 

     TextView cat_v = (TextView) row.findViewById(R.id.textView1); 
     TextView sub_v = (TextView) row.findViewById(R.id.textView2);   
     cat_v.setText(sCategory.get(position)); 
     sub_v.setText(sSub_cat.get(position)); 

     return row; 
    } 
} 

} 
+0

在'Category'和'Sub_category'只是用'onLongItemClickListener'註冊你的listview。 –

回答

0

我需要setListAdapter()
我本來把第一行setListAdapter()之前,是得到錯誤後,添加以下代碼。

ListView list = getListView();  
    list.setOnItemLongClickListener(new OnItemLongClickListener(){ 

     @Override 
     public boolean onItemLongClick(AdapterView<?> arg0, View arg1, 
       int arg2, long arg3) { 
      Toast.makeText(Category.this, "test toast Cat", Toast.LENGTH_LONG).show(); 
      return false; 
     } 

    }); 
相關問題