1

我刚开始学习应用程序构建,我需要一些帮助。我阅读了有关制作选项卡式导航的教程,但无法正常工作。当我按照教程进行操作时,我制作了两个选项卡,每个选项卡都将您发送到不同的片段(每个片段只包含文本),我的问题是我无法在每个片段中显示文本。我搜索了整个论坛,但找不到类似的东西

这是我的带有标签的屏幕:

    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 文件......所以我创建了一个新字段,我猜这是怎么回事......

4

0 回答 0