Android – button点击像Google Chrome新button时添加新标签?

一般来说,Google Chrome上的所有function都可以使用。 当新的标签button被点击时,一个新的标签被生成。 以同样的方式,我想在Android浏览器中添加一个新的选项卡。 如何做到这一点 – 有没有人有任何想法?

  1. 首先,Android可能吗?

  2. 如果可能的话,该怎么做?

    在这里输入图像说明

当我点击+button时,应该生成一个新的选项卡。 这个怎么做?

Solutions Collecting From Web of "Android – button点击像Google Chrome新button时添加新标签?"

好的这里是代码,但它只是一个例子,你可能需要根据你的需求修改代码。 我在这里给你所有的文件代码,希望你能得到答案。

您的Manifest.xml文件

 <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.android.dynamictab" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="15" /> <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".BlankActivity"/> </application> </manifest> 

这是您的Tab活动的activity_main.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" > <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" > <HorizontalScrollView android:layout_width="fill_parent" android:layout_height="wrap_content" android:fillViewport="true" android:scrollbars="none" android:layout_weight="1"> <TabWidget android:id="@android:id/tabs" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginLeft="0dip" android:layout_marginRight="0dip" /> </HorizontalScrollView> <Button android:id="@+id/add_tab" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="0.1" android:text="Add"/> </LinearLayout> <FrameLayout android:id="@android:id/tabcontent" android:layout_width="fill_parent" android:layout_height="fill_parent" android:padding="2dp" /> </LinearLayout> </TabHost> 

把你的TabWidget放到Horizo​​ntalScrollView中,这样当添加更多的标签时,它可以滚动,而添加却在Horizo​​ntalScrollView的外面。 每当你点击标签,它将在TabWidget中添加新的标签。

这里的代码为tab_event.xml这个布局将膨胀并添加到选项卡。 您可以更改样式,其中包含单个button,以便您可以添加带有文本的可绘制图像。

 <?xml version="1.0" encoding="utf-8"?> <Button xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/button_event" android:clickable="true" android:focusable="true" android:text="Default Tab" android:layout_width="wrap_content" android:layout_height="wrap_content" /> 

这是你的MainActivity.java文件

 import android.app.TabActivity; import android.content.Intent; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.TabHost; import android.widget.TabHost.TabSpec; public class MainActivity extends TabActivity { private static int tabIndex = 0; private TabHost tabHost; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); tabHost = getTabHost(); addTab(); ((Button)findViewById(R.id.add_tab)).setOnClickListener(new OnClickListener() { public void onClick(View v) { tabIndex++; addTab(); } }); } private void addTab(){ LayoutInflater layoutInflate = LayoutInflater.from(MainActivity.this); Button tabBtn = (Button)layoutInflate.inflate(R.layout.tab_event, null); tabBtn.setText("Tab "+tabIndex); Intent tabIntent = new Intent(MainActivity.this, BlankActivity.class); setupTab(tabBtn, tabIntent,"Tab "+tabIndex); } protected void setupTab(View tabBtn, Intent setClass,String tag) { TabSpec setContent = tabHost.newTabSpec(tag).setIndicator(tabBtn).setContent(setClass); tabHost.addTab(setContent); } } 

这里是BlankActivity.java文件

 import android.app.Activity; import android.os.Bundle; import android.widget.TextView; public class BlankActivity extends Activity{ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); TextView tv = new TextView(BlankActivity.this); tv.setText("Blank activity"); setContentView(tv); } } 

对于button单击创build一个新的tabspec。

 TabSpeec spec = th.newTabSpec("tag"); spec.setContent(new TabHost.TabContentFactory(){ //What ever thing you want to display inside the tab TextView text = new TextView(CONTEXT); text.setText("New tab"); return(text); } }); spec.setIndicator("New"); th.addTab(spec); 

使用以下的YouTube教程作为参考。 这很简单。

http://www.youtube.com/watch?v=NcKSFlYEqYY

创build一个活动如下:

 public class WebViewActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); WebView wv=new WebView(this); setContentView(wv); } } 

现在使用@ Partik的方法添加一个新的选项卡,在每个+button上单击:

 private void addTab(){ Button tabBtn = new Button(MainActivity.this); tabBtn.setText("Tab "+tabIndex); Intent tabIntent = new Intent(MainActivity.this, WebViewActivity.class); setupTab(tabBtn, tabIntent,"Tab "+tabIndex); }