2012-09-06 128 views
0

我有tabview和4个选项卡,我使用TabHost来显示选项卡我的应用程序。 被另一个类填充每个选项卡从ListActivity延伸,这里是代码在tabview中从ListActivity启动新的ListActivity

public class TabbedActivity extends TabActivity { 

/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.tab_layout); 

    TabHost tabHost = getTabHost(); 

    // Tab for Catalog 
    TabSpec catalogspec = tabHost.newTabSpec("Catalog"); 
    catalogspec.setIndicator("Complete Catalog Fall 2012", getResources().getDrawable(R.drawable.ic_catalog)); 
    Intent catalogIntent = new Intent(this, Category.class); 
    catalogspec.setContent(catalogIntent); 
// Adding all TabSpec to TabHost 
    tabHost.addTab(catalogspec); // Adding catalog tab 
} 

,这在其他意图

public class Category extends ListActivity { 
@Override 
public void onCreate(Bundle savedInstanceState) {  
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.list_of_data); 
Categories = new ArrayList<String>(); 
    fillListCategories(); 

    myListItems = new ArrayList<String>(); 
    adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, Categories); 
     this.setListAdapter(adapter); 
}} 

代码在列表视图有产品清单,,我的观点是如何设置Onclick在同一Tab中打开另一个“ListActivity”?

+0

你试过在onClick上膨胀一个视图吗? – fasheikh

+0

没有,,其实我是如此新鲜的机器人,只有3周,,你可以提高我的更多细节?,,我想保持选项卡可见 –

+0

见下面答案:) – fasheikh

回答

1

在您的范畴类,添加一个onClickListener像这样:

public class Category extends ListActivity { 
@Override 
public void onCreate(Bundle savedInstanceState) {  
super.onCreate(savedInstanceState); 
setContentView(R.layout.list_of_data); 
Categories = new ArrayList<String>(); 
fillListCategories(); 

myListItems = new ArrayList<String>(); 
adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, Categories); 
    this.setListAdapter(adapter); 
    this.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
    @Override 
    public void onItemClick(AdapterView<?> parent, View item, 
          int position, long id) { 
    mSelectedCategory = (String)parent.getItemAtPosition(position); 

    Intent intent = new Intent(getBaseContext(), ScreenTwo.class); 
      intent.putExtra("name", mSelectedCategory.(WHATEVER INFO YOU NEED ABOUT THE CATEGORY); 
      startActivity(intent); 
    } 
}); 
}} 

ScreenTwo.java会是什么样子与ListAdapter范畴类,但与通过意图传递的信息:

public class ScreenTwo extends ListActivity { 
@Override 
public void onCreate(Bundle savedInstanceState) {  
super.onCreate(savedInstanceState); 
setContentView(R.layout.list_of_data); 
Bundle b = getIntent().getExtras(); 
    String Name = b.getString("name"); 
Categories = new ArrayList<String>(); 
fillListCategories(); 

myListItems = new ArrayList<String>(); 
adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, Categories); 
    this.setListAdapter(adapter); 
}} 
+0

我现在尝试它,但我有另一个问题,, 如何设置列表视图中的原始对象有5个值,我已经使用适配器,并且当我使用类从活动延伸它工作正常,但是当我使用扩展列表活动,它没有不显示任何东西? –

+0

对不起我不太明白你的问题 – fasheikh

+0

第二意图类别应重定向到的列表视图,但列表中的项目是不是字符串,,这是项目的对象,,这个项目有5个值,我得到和使用类设置他们的值,我现在使用适配器 填充数据,我该如何使用此适配器数据填充listview行? –