我想创建像这样的东西
|按钮|
第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);
}
答案 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。