2015-04-22 99 views
1

我正在尝试在我的活动中创建2行列表视图,但遇到了一个我不知道如何解决的错误。我怎样才能达到这个AppCompat的方式?我想实现类似于附件中的截图。我的错误是在管线52未显示2行列表视图

public class WCLineActivity extends ActionBarActivity { 

    private class Sample { 
     private CharSequence title; 
     private CharSequence summary; 
     private Class<? extends Activity> activityClass; 

     public Sample(int titleResId, int summaryResId, Class<? extends Activity> activityClass) { 
      this.activityClass = activityClass; 
      this.title = getResources().getString(titleResId); 
      this.summary = getResources().getString(summaryResId); 

     } 

     @Override 
     public String toString() { return title.toString(); } 
     public String getSummary(){ return summary.toString(); } 
    } 

    private static Sample[] mSamples; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_wc_line); 

     // Instantiate the list of samples. 
     mSamples = new Sample[]{ 
       new Sample(R.string.bank, R.string.zone_1, MainActivity.class), 
       new Sample(R.string.waterloo, R.string.zone_1, MainActivity.class) 
     }; 

     setListAdapter(new MyAdapter(this, mSamples)); 
    } 

    static class MyAdapter extends BaseAdapter { 

     static class ViewHolder { 
      TextView title; 
      TextView summary; 
     } 

     LayoutInflater inflater; 
     Sample[] mSamples; 

     public MyAdapter(Context contexts, Sample[] samples) { 
      this.mSamples = samples; 
      inflater = LayoutInflater.from(contexts); 

     } 

     @Override 
     public int getCount() { 
      return mSamples.length; 
     } 

     @Override 
     public Object getItem(int position) { 
      return mSamples[position]; 
     } 

     @Override 
     public long getItemId(int position) { 
      return 0; 
     } 

     @Override 
     public View getView(int position, View convertView, ViewGroup parent) { 
      ViewHolder viewHolder; 
      if (convertView == null) { 
       convertView = inflater.inflate(R.layout.list_item_dualline, null); 
       viewHolder = new ViewHolder(); 

       viewHolder.title = (TextView) convertView.findViewById(R.id.list_item_title); 
       viewHolder.summary = (TextView) convertView.findViewById(R.id.list_item_subtitle); 
       convertView.setTag(viewHolder); 
      } else { 
       viewHolder = (ViewHolder) convertView.getTag(); 
      } 
      viewHolder.title.setText(mSamples[position].title); 
      viewHolder.summary.setText(mSamples[position].getSummary()); 
      return convertView; 
     } 
    } 
} 

phone

error

enter image description here

+0

你能请张贴什么错误你好吗? – Iqbal

回答

1

我试着用你的代码

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_wc_line); 
    ListView listView = (ListView) findViewById(R.id.listView); 
    // Instantiate the list of samples. 
    mSamples = new Sample[]{ 
      new Sample(R.string.bank, R.string.zone_1, MainActivity.class), 
      new Sample(R.string.waterloo, R.string.zone_1, MainActivity.class) 
    }; 

    listView.setAdapter(new MyAdapter(this, mSamples)); 
    } 
+0

我现在有一个新问题。当我点击一个列表项目时,它不会将我带到所需的页面。请检查我的最新截图并找出错误并需要更改。 – MacaronLover

+0

尝试listView.setOnItemClickListener – Santhana

+0

您的类对象是'MainActivity.class',对于这两个项目。 – Blackbelt

2

setListAdapterListActivity的方法,它是不是在Activity可用。要克服它,您可以在布局中声明ListView,在findViewById上检索ListView,并在该对象上调用setAdapter。例如。

ListView listView = (ListView) findViewById(R.id.id_list); 
listView.setAdapter(new MyAdapter(this, mSamples));