0

我有一个 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 的类也能够具有标题?

谢谢!

4

1 回答 1

1

您可以BaseActivity扩展 from 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();
  }

  ...


}
于 2012-05-26T16:44:11.150 回答