Android,在tabhost里面如何添加按钮和listview undernetath?

时间:2012-05-20 22:43:58

标签: android listview button

我想创建像这样的东西

|按钮|

第1项

第2项

第3项

。 。 列表视图中的项目

我已经有一个包含3个标签的tabhost,所以我不想更改我的main.xml,因为该按钮会出现在每个标签上!我希望我的第一个标签显示一个日历(这个已经完成,我不确定它是否可以,但已完成),第二个标签将显示不同的内容,最后一个标签显示下方的项目列表。< / p>

我没有粘贴任何代码,因为我所做的一切都来自android教程,所以我不想让别人给我一个已编写的代码,只是为了引导我通过我必须阅读的内容和去哪里期待实现这一点!

提前致谢!

这就是我到目前为止所做的 这是我的主要课程

`public class HourPayActivity扩展TabActivity {     public void onCreate(Bundle savedInstanceState){         super.onCreate(savedInstanceState);         的setContentView(R.layout.main);

    Resources res = getResources(); // Resource object to get Drawables
    TabHost tabHost = getTabHost();  // The activity TabHost
    TabHost.TabSpec spec;  // Resusable TabSpec for each tab
    Intent intent;  // Reusable Intent for each tab

    // Create an Intent to launch an //setContentView(R.layout.emptab); Activity for the tab (to be reused)
    intent = new Intent().setClass(this, MonthsActivity.class);

    // Initialize a TabSpec for each tab and add it to the TabHost
    spec = tabHost.newTabSpec("Months").setIndicator("",
                      res.getDrawable(R.drawable.ic_tab_months))
                  .setContent(intent);
    tabHost.addTab(spec);

    // Do the same for the other tabs
    intent = new Intent().setClass(this, EmployersActivity.class);
    spec = tabHost.newTabSpec("Employers").setIndicator("",
                      res.getDrawable(R.drawable.ic_tab_employers))
                  .setContent(intent);
    tabHost.addTab(spec);

    intent = new Intent().setClass(this, PaymentsActivity.class);
    spec = tabHost.newTabSpec("Payments").setIndicator("",
                      res.getDrawable(R.drawable.ic_tab_payments))
                  .setContent(intent);
    tabHost.addTab(spec);

    tabHost.setCurrentTab(0);
}

} `

这是我想要显示的标签内容

public class EmployersActivity extends Activity {
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);


    ListView employersList = getListView();

    String[] employers = getResources().getStringArray(R.array.employers_list);
    setListAdapter(new ArrayAdapter<String>(this, R.layout.list_item, employers));
    employersList.setAdapter(getListAdapter());       

    employersList.setTextFilterEnabled(true);



    employersList.setOnItemClickListener(new OnItemClickListener() {
        //@Override
        public void onItemClick(AdapterView<?> parent, View view,
            int position, long id) {
          // When clicked, show a toast with the TextView text
          Toast.makeText(getApplicationContext(), ((TextView) view).getText(),
              Toast.LENGTH_LONG).show();
        }
    });

    setContentView(employersList);

}

1 个答案:

答案 0 :(得分:0)

你做的是什么;你按照android教程,告诉你如果我没记错的话,你可以创建一个扩展TabActivity的类。

在此活动中,您可以通过

加载意图
TabHost.TabSpec spec = tabHost.newTabSpec([title]);
....
Intent content = new Intent(this, activityToLoad.class);
spec.setContent(content);
tabHost.addTab(spec);

这样做,它在选项卡中加载活动。 这反过来意味着你可以使用像普通的活动,你可以使用自定义布局与setContentView(R.layout.yourlayout);在onCreate()方法中。您可以调用组件,将自定义列表适配器附加到列表中,依此类推。对于3个选项卡,创建3个不同的活动。基于个人知识,它是维护标签的最简单方法。

您在这些布局中的内容取决于您。但是你在选项卡中放置的那些活动是“正常”活动,就像你(可能)熟悉的那样。

解释您的观点:

 <LinearLayout
 xmlns:android="http://schemas.android.com/apk/res/android"
 android:orientation="vertical"
 android:layout_width="match_parent"
 android:layout_height="match_parent">
    <Button 
     android:id="@+id/btnId"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:text="@string/yourtext"
     />
    <ListView 
    android:id="@android:id/android:list"
    android:layout_height="fill_content" 
    android:layout_width="match_parent"
    />
</LinearLayout>

这将在顶部放置一个按钮,其下方有一个列表视图。 listview的id是android:list,因为在我的活动中我扩展了listActivity,它需要一个带有该id的listview。