创建带有按钮的标题栏时,这在所有 Activity 中都很常见,例如在 tabactivities 中创建的标题栏。怎么可能到达所有子 Activity 中的按钮??
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");
}
});
}
监听器不起作用??
这可能吗??
最佳答案
像这样制作一个抽象的Activity
:
public abstract class MyAbsActivity extends Activity {
abstract public void buttonClickedInTab();
}
然后使用 MyAbsActivity
扩展标签的两个子 Activity
,然后您必须覆盖 buttonClickedInTab()
方法。
在重写该方法时,将您的逻辑放在那里用于两个 Activity 。例如你的 About
和 buttonClickedInTab()
应该是这样的:
public class About extends MyAbsActivity {
//onCreate() etc here
@Override
public void buttonClickedInTab() {
//Your logic to do action for About
}
}
对其他 SettingActivity
重复此操作。
现在在您的 TabActivity
中处理标题按钮事件 onClick()
public void onClick(View v)
{
MyAbsActivity activity = (MyAbsActivity)getLocalActivityManager().getCurrentActivity();
activity.buttonClickedInTab(); // it will inform the current activity
}
关于android - 标题栏中的按钮如何到达它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9013478/