我刚开始学习应用程序构建,我需要一些帮助。我阅读了有关制作选项卡式导航的教程,但无法正常工作。当我按照教程进行操作时,我制作了两个选项卡,每个选项卡都将您发送到不同的片段(每个片段只包含文本),我的问题是我无法在每个片段中显示文本。我搜索了整个论坛,但找不到类似的东西
这是我的带有标签的屏幕:
package com.example.tabspractice2;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.app.ActionBar;
public class tabsScreen extends Activity{
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ActionBar actionBar = getActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
ActionBar.TabListener tabListener1 = new tabs(this, "com.example.tabspractice2.tab1");
ActionBar.Tab tab1 = actionBar.newTab();
tab1.setText("tab1");
tab1.setTabListener(tabListener1);
actionBar.addTab(tab1);
ActionBar.TabListener tabListener2 = new tabs(this, "com.example.tabspractice2.tab2");
ActionBar.Tab tab2 = actionBar.newTab();
tab2.setText("tab2");
tab2.setTabListener(tabListener2);
actionBar.addTab(tab2);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
这是 TabListener:
package com.example.tabspractice2;
import android.app.ActionBar.Tab;
import android.app.FragmentTransaction;
import android.app.ActionBar;
import android.app.Fragment;
import android.content.Context;
public class tabs implements ActionBar.TabListener {
Context _context;
String _tabFragmentClassName;
Fragment _tabFragment = null;
String content;
public tabs (Context context, String tabFragmentClassName){
_context = context;
_tabFragmentClassName = tabFragmentClassName;
}
@Override
public void onTabSelected(Tab arg0, FragmentTransaction arg1) {
if (_tabFragment == null){
_tabFragment = Fragment.instantiate(_context, _tabFragmentClassName);
arg1.add(_tabFragment, content);
}
else
arg1.attach(_tabFragment);
}
@Override
public void onTabUnselected(Tab arg0, FragmentTransaction arg1) {
arg1.detach(_tabFragment);
}
@Override
public void onTabReselected(Tab arg0, FragmentTransaction arg1) {
// TODO Auto-generated method stub
}
}
这是我的标签之一(它们看起来都一样)
package com.example.tabspractice2;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.app.Fragment;
import android.os.Bundle;
public class tab1 extends Fragment{
@Override
public View onCreateView (LayoutInflater inflater, ViewGroup container, Bundle savedIns){
return inflater.inflate(R.layout.tab1, container, false);
}
}
它们每个都指向一个如下所示的 xml 文件:
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<TextView
android:id="@+id/tab1TextView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="50dp"
android:text="tab1" />
</ScrollView>
这应该加载文本,但由于某种原因它不会显示,我认为它与选项卡类中的“内容”有关,但这超出了我的理解......在教程中他们将内容定向到R.id,但它给了我一个错误,我无法正确更改 R 文件......所以我创建了一个新字段,我猜这是怎么回事......