我正在尝试构建自定义listView
(布局仅包含3个textViews
)。
下面是我的代码,我只是扩展ArrayAdapter<String>
并填写我自己的构造函数,但在执行时,应用程序一直在崩溃而没有显示任何内容。
import android.content.res.Resources;
// ... more imports
public class MainActivity extends Activity {
Resources res = getResources( );
String[] days = res.getStringArray(R.array.days);
String[] title = res.getStringArray(R.array.title);
String[] desc = res.getStringArray(R.array.desc);
ListView lv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
lv = (ListView) findViewById(R.id.lv);
customArrayAdapter adp = new customArrayAdapter(this, days, title, desc);
lv.setAdapter(adp);
}
}
class customArrayAdapter extends ArrayAdapter<String> {
Context context;
String[] title;
String[] desc;
customArrayAdapter(Context c, String[] name, String[] title, String[] desc) {
super(c, R.layout.single_row, R.id.tv1, name);
this.context = c;
this.title = title;
this.desc = desc;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inf = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View row = inf.inflate(R.layout.single_row, parent, false);
TextView tv1 = (TextView) row.findViewById(R.id.tv1);
TextView tv2 = (TextView) row.findViewById(R.id.tv2);
TextView tv3 = (TextView) row.findViewById(R.id.tv3);
tv2.setText(title[position]);
tv3.setText(desc[position]);
return row;
}
}
答案 0 :(得分:0)
public class MainActivity extends Activity {
Resources res;
//stuff
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
res = getResources();
//stuff
}
}
答案 1 :(得分:-1)
Context context;
ListView lv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
context = getApplicationContext();
lv = (ListView) findViewById(R.id.lv);
customArrayAdapter adp = new customArrayAdapter(context, days, title, desc);
lv.setAdapter(adp);
}