2013-01-15 222 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; 
     } 

    }); 
相关问题