[英]Button in title bar how to reach it
使用按鈕創建標題欄時,這在所有活動中都很常見,例如在tabactivities中創建的標題欄。 如何在所有子活動中到達按鈕?
public class tabActivity extends TabActivity implements OnClickListener{
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
c = this;
requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
setContentView(R.layout.tabactivity);
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.window_title);
mTabHost.addTab(mTabHost.newTabSpec("tab_test1").setIndicator("Settings",
res.getDrawable(R.drawable.preferences)).setContent(
new Intent(this, Settings.class)));
mTabHost.addTab(mTabHost.newTabSpec("tab_test1").setIndicator("About",
res.getDrawable(R.drawable.newspaper)).setContent(
new Intent(this, About.class)));
這是我初始化我的選項卡,以及帶按鈕的自定義標題。
在這個課程中,我想到達自定義標題中的按鈕:
public class About extends Activity
{
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.about);
ImageView imag = (ImageView) findViewById(R.id.Position);
imag.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
System.out.println("heeey");
}
});
}
聽眾不工作?
Hooow這可能嗎?
像這樣制作一個抽象的Activity
:
public abstract class MyAbsActivity extends Activity {
abstract public void buttonClickedInTab();
}
然后使用MyAbsActivity
擴展兩個子項的Activity
子MyAbsActivity
,然后必須覆蓋buttonClickedInTab()
方法。
覆蓋該方法時,將您的邏輯放在兩個活動中。 例如你的About
buttonClickedInTab()
應該如下所示:
public class About extends MyAbsActivity {
//onCreate() etc here
@Override
public void buttonClickedInTab() {
//Your logic to do action for About
}
}
對其他SettingActivity
重復此SettingActivity
。
現在在TabActivity
中處理標題按鈕事件onClick()
public void onClick(View v)
{
MyAbsActivity activity = (MyAbsActivity)getLocalActivityManager().getCurrentActivity();
activity.buttonClickedInTab(); // it will inform the current activity
}
public class Android_templateActivity extends Activity
{
private static OnClickListener listener;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
View v = new View(this);
v.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
Android_templateActivity.listener.onClick(v);
}
});
}
public static void setListener(View.OnClickListener listener)
{
Android_templateActivity.listener = listener;
}
}
這是主要活動
public class aaa extends Activity implements OnClickListener
{
@Override
protected void onResume()
{
Android_templateActivity.setListener(this);
super.onResume();
}
@Override
public void onClick(View v)
{
// TODO Auto-generated method stub
}
}
這是子活動
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.