【问题标题】:TabActivity that create an intent onClick button but the tabhost of activity receiver disappear创建意图 onClick 按钮但活动接收器的 tabhost 消失的 TabActivity
【发布时间】:2023-03-31 10:50:01
【问题描述】:

我有 2 个活动:A、B。第一个是 TabActivity,第二个是 Activity。 在 A 内部,我有一个可点击的按钮,用于调用其他活动。

public class A extends TabActivity implements OnClickListener {

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        tabHost = getTabHost();
        tabHost.addTab(tabHost.newTabSpec("a").setContent(R.id.a).setIndicator("a"));

        b = new Intent(this,B.class);
    tabHost.addTab(tabHost.newTabSpec("b").setContent(b)
            .setIndicator(this.getString(R.string.b)));

        btn.setOnClickListener(this);
    }


    public void onClick(View arg0) {
        if (arg0 == btn) {
        startActivity(b);
        }
    }
}

在 B 内部,每次单击 A 类中的按钮时,我都有一个线程从 Internet 获取数据:

public class B extends Activity {
    public void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.search_result);

       searchHandler = new Handler() {
           @Override
           public void handleMessage(Message msg) {
               draw(msg.obj.toString());
           }
    }

    Intent intent = getIntent();
    if(..)
        sendHttpRequest();
}

数据正确返回并且我可以管理它,但我的标签主机消失了。我该如何解决?

【问题讨论】:

    标签: android android-intent android-tabhost tabactivity


    【解决方案1】:

    android自动换tab的方式是:

    tabHost.setCurrentTab(tab);
    

    而不是使用:

    startActivity(intent);
    

    要在所有 Activity 上使用它,最好的方法是将 TabHost 设置为 public 和 static。

    【讨论】:

      【解决方案2】:

      每当您单击按钮时,您都会调用一个不是选项卡活动的子活动的活动。 所以tabhost消失了。像这样在标签活动中调用活动b

       tabHost.addTab(tabHost.newTabSpec("Tab")
                          .setIndicator("Tab")
                          .setContent(new Intent(this, b.class)
                         ));
      

      【讨论】:

      • 正确,但我怎样才能拥有我想要的行为?
      • 使用 tabchangedListener 并在 tabChanged 方法上调用您的方法。每次更改标签时都会调用此方法
      • 我仍然不明白如何实现我想要的工作流程。只是为了确定你误会了我。我需要绘制一个与选项卡 B 关联的活动,但不单击选项卡的切换。单击它,我只需要显示通过单击在活动 (A) 上查看的按钮生成的内容,但我希望选项卡的切换继续存在。如果您认为您的回复仍然正确,我希望得到更多解释。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多