我的BaseActivity有我的标题:
public class BaseActivity extends Activity
{
@Override
public void setContentView(int layoutResID) {
super.setContentView(layoutResID);
{
Button home_header = (Button)findViewById(R.id.home_header);
Button questions_header = (Button)findViewById(R.id.questions_header);
home_header.setOnClickListener(new Button.OnClickListener()
{
public void onClick(View v)
{
Intent myIntent = new Intent( BaseActivity.this , ProblemioActivity.class);
BaseActivity.this.startActivity(myIntent);
}
});
questions_header.setOnClickListener(new Button.OnClickListener()
{
public void onClick(View v)
{
Intent myIntent = new Intent( BaseActivity.this , MyQuestionsActivity.class);
BaseActivity.this.startActivity(myIntent);
}
});
}
}
}
当我像这样扩展它时它会起作用:
public class ProblemActivity extends BaseActivity
但如果我有一个扩展ListActivity的类,我也不能扩展BaseActivity。有没有办法让我强制扩展ListActivity的类也能够拥有标题?现在我通过扩展BaseActivity使它们具有头部,但是由于一些扩展了ListActivity,我似乎无法这样做。
如何解决这个问题并使扩展ListActivity的类也能够拥有标题?
谢谢!
答案 0 :(得分:1)
您可以从BaseActivity
延长ListActivity
,但这会使您的所有活动成为ListActivity
,并可能会对其他非ListActivity活动造成问题。
ListActivity
不需要使用ListView
。您可以在普通活动中使用ListView
。如果要继续对所有活动使用BaseActivity,请不要使用ListActivity并自行管理ListView。另一种方法是制作自己的ListActivity
BaseActivity
。这是一个基本的例子:
class MyBaseListActivity extends BaseActivity {
protected ListView getListView() {
return (ListView)findViewById(android.R.id.list);
}
protected ListAdapter getListAdapter() {
return getListView().getAdapter();
}
...
}