0

ListActivity から直接継承していたいくつかのクラスがあります。すべてが機能しました。今、私は ListActivity から継承する BaseListActivity から継承しています。

BaseListActivity は次のとおりです。

public class BaseListActivity extends ListActivity 
{
    @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( BaseListActivity.this , ProblemioActivity.class);
              BaseListActivity.this.startActivity(myIntent);
            }
        });                 

        questions_header.setOnClickListener(new Button.OnClickListener() 
        {  
            public void onClick(View v) 
            {                   
              Intent myIntent = new Intent( BaseListActivity.this , MyQuestionsActivity.class);
              BaseListActivity.this.startActivity(myIntent);
            }
        });         
}
}

基本的に、ページにヘッダーを追加します。しかし、今ではどのリストもレンダリングされず、例外はありません。

それを機能させるために他に何をしなければならなかったのでしょうか?

元のレイアウトを変更した方法は次のとおりです。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" 
    android:orientation="vertical" >    


<include android:id="@+id/header"
         layout="@layout/header"
         android:layout_height="wrap_content"
         android:layout_width="fill_parent"/>    


<TextView
    android:id="@+id/question_label"    
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="Loading your questions..."
    />     

    <ListView
    android:id="@android:id/list"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@+id/label"
        android:textSize="20px" >        
    </ListView>

これが私のonCreateです

public class MyQuestionsActivity extends BaseListActivity
{
    ArrayAdapter<Question> adapter;     

    ArrayList<Question> questions = new ArrayList <Question>( );        

@Override
    public void onCreate(Bundle savedInstanceState) 
{   
    super.onCreate(savedInstanceState);

    setContentView(R.layout.users_questions);

    Question q = new Question ();
    q.setQuestion( "" );

    questions.add(q);       

    adapter = new ArrayAdapter<Question>(this, R.layout.user_question_list, questions);

今、私は BaseListActivity にこれを持っています

@Override
    public void setContentView(int layoutResID) {
        super.setContentView(layoutResID);      
    {

私はちょうどこれを試しました:

public class BaseListActivity extends ListActivity 
{
    @Override
    public void setContentView(int layoutResID) {
        super.setContentView(layoutResID);      
    {
        setListAdapter(this.getListAdapter());

しかし、それはうまくいきませんでした:(

4

1 に答える 1

1

これを見てください

http://jnastase.alner.net/archive/2011/08/08/custom-android-listactivity.aspx

http://www.softwarepassion.com/android-series-custom-listview-items-and-adapters/

onCreate にこの行はありますか ......... setContentView(R.layout.main);

于 2012-05-26T18:27:17.467 に答える