不同的选项卡里面的按钮 [英] buttons inside different tabs

查看:220
本文介绍了不同的选项卡里面的按钮的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有三个标签,每一个延伸活动和实现View.OnClickListener
当我选择了一些选项卡,然后点击一个按钮时,OnClickListener落实到SomeTabActivity不起作用。为什么?
我需要做的创建我活动怎么样?
我选择一些片每次我需要开始新的活动?

我的code:

//主要活动

 公共类TripoidActivity扩展TabActivity {    @覆盖
    公共无效的onCreate(捆绑savedInstanceState){
        super.onCreate(savedInstanceState);
        的setContentView(R.layout.main);
        在里面();
    }    私人无效的init(){
         最后TabHost tabHost =(TabHost)findViewById(android.R.id.tabhost);
         tabHost.setup();
         最终资源解析度= getResources();         createTabA(tabHost,RES);
         createTabB(tabHost,RES);
         createTabC(tabHost,RES);    }}

//标签A活性

 公共类TabAActivity扩展活动实现View.OnClickListener {
    @覆盖
    公共无效的onCreate(捆绑savedInstanceState){
        super.onCreate(savedInstanceState);
        在里面();
    }    私人无效的init(){
        buttonAddItem =(按钮)findViewById(R.id.btAddItem);
        buttonAddItem.setOnClickListener(TabAActivity.this);
    }    @覆盖
    公共无效的onClick(视图v){
        //做一些事情(显示举杯MSG)
    }    }

//主要布局XML

 <?XML版本=1.0编码=UTF-8&GT?;
    < TabHost的xmlns:机器人=htt​​p://schemas.android.com/apk/res/android
    机器人:ID =@机器人:ID / tabhost
    机器人:layout_width =FILL_PARENT
    机器人:layout_height =FILL_PARENT>    <的LinearLayout
        机器人:layout_width =FILL_PARENT
        机器人:layout_height =FILL_PARENT
        机器人:方向=垂直
        机器人:填充=5DP>        < TabWidget
            机器人:ID =@机器人:ID /标签
            机器人:layout_width =FILL_PARENT
            机器人:layout_height =WRAP_CONTENT/>        <的FrameLayout
            机器人:ID =@机器人:ID / tabcontent
            机器人:layout_width =FILL_PARENT
            机器人:layout_height =FILL_PARENT
            机器人:填充=5DP>            <包括布局=@布局/ tab_a/>
            <包括布局=@布局/ tab_b/>
            <包括布局=@布局/ tab_c/>        < /&的FrameLayout GT;
    < / LinearLayout中>
    < / TabHost>


解决方案

试试这个...

主要活动

 公共类TabWidgetExampleActivity扩展TabActivity {
/ **当第一次创建活动调用。 * /@覆盖
公共无效的onCreate(捆绑savedInstanceState){
    super.onCreate(savedInstanceState);
    的setContentView(R.layout.main);    资源解析度= getResources(); //资源对象获取可绘制
    TabHost tabHost = getTabHost(); //活动TabHost
    TabHost.TabSpec规范; // Resusable则tabspec为每个标签
    意图意图; //可重用的意图为每个标签    //创建一个Intent来启动一个活动的标签(重复使用)
    意图=新意图()setClass(这一点,Da​​ilyActivity.class)。    //初始化则tabspec每个选项卡,并把它添加到TabHost
    规格= tabHost.newTabSpec(人民日报)。setIndicator(,
                      res.getDrawable(R.drawable.tab_daily))
                  .setContent(意向);
    tabHost.addTab(规范);    //做其他选项卡相同
    意图=新意图()setClass(这一点,MapActivity.class)。
    规格= tabHost.newTabSpec(地图)。setIndicator(,
                      res.getDrawable(R.drawable.tab_map))
                  .setContent(意向);
    tabHost.addTab(规范);    意图=新意图()setClass(这一点,HourlyActivity.class)。
    规格= tabHost.newTabSpec(每小时)。setIndicator(,
                      res.getDrawable(R.drawable.tab_hour))
                  .setContent(意向);
    tabHost.addTab(规范);
   }
  }

标签活动

 公共类HourlyActivity延伸活动{
公共无效的onCreate(捆绑savedInstanceState)
{
    super.onCreate(savedInstanceState);
    最终按钮BTN =新按钮(本);
    btn.setText(链接);
     最终的LinearLayout L1 =新的LinearLayout(本);
    btn.setOnClickListener(新OnClickListener(){        公共无效的onClick(视图v){
            // TODO自动生成方法存根
            Toast.makeText(getApplicationContext(),海,Toast.LENGTH_LONG).show();            意图I =新意图();
            i.setClass(getApplicationContext(),MapActivity.class);
            startActivity(ⅰ);
        }
    });
    的setContentView(BTN);
} }

I have three tabs and each one extends Activity and implements View.OnClickListener When I selected some tab and click on a button, the OnClickListener implemented into SomeTabActivity doesn't work. Why? What I need to do to create my activity? Every time that I select some tab I need start new activity?

My code:

//the main activity

 public class TripoidActivity extends TabActivity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        init();
    }

    private void init() {
         final TabHost tabHost = (TabHost) findViewById(android.R.id.tabhost);
         tabHost.setup();
         final Resources res = getResources();

         createTabA(tabHost, res);
         createTabB(tabHost, res);
         createTabC(tabHost, res);

    }

}

//the tab A activity

 public class TabAActivity extends Activity implements View.OnClickListener {


    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        init();
    }

    private void init() {
        buttonAddItem = (Button) findViewById(R.id.btAddItem);
        buttonAddItem.setOnClickListener(TabAActivity.this);
    }

    @Override
    public void onClick(View v) {
        //do something (show a toast msg)
    }

    }

//the main layout xml

 <?xml version="1.0" encoding="utf-8"?>
    <TabHost xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@android:id/tabhost"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical"
        android:padding="5dp" >

        <TabWidget
            android:id="@android:id/tabs"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content" />

        <FrameLayout
            android:id="@android:id/tabcontent"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:padding="5dp" >

            <include layout="@layout/tab_a" />
            <include layout="@layout/tab_b" />
            <include layout="@layout/tab_c" />

        </FrameLayout>
    </LinearLayout>
    </TabHost>

解决方案

Try This...

Main Activity

public class TabWidgetExampleActivity extends TabActivity {
/** Called when the activity is first created. */

@Override
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 Activity for the tab (to be reused)
    intent = new Intent().setClass(this, DailyActivity.class);

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

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

    intent = new Intent().setClass(this, HourlyActivity.class);
    spec = tabHost.newTabSpec("Hourly").setIndicator("",
                      res.getDrawable(R.drawable.tab_hour))
                  .setContent(intent);
    tabHost.addTab(spec);


   }
  }

Tab Activity

    public class HourlyActivity extends Activity{
public void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    final Button btn=new Button(this);
    btn.setText("button");
     final LinearLayout l1=new LinearLayout(this);
    btn.setOnClickListener(new OnClickListener() {

        public void onClick(View v) {
            // TODO Auto-generated method stub
            Toast.makeText(getApplicationContext(), "hai", Toast.LENGTH_LONG).show();

            Intent i=new Intent();
            i.setClass(getApplicationContext(), MapActivity.class);
            startActivity(i);


        }
    });
    setContentView(btn);
}

 }

这篇关于不同的选项卡里面的按钮的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆