Rav*_*ndu 0 java android android-arrayadapter android-listview
在我的列表中,数据显示如下,
test 1
test 2
test 3
Run Code Online (Sandbox Code Playgroud)
但我想向他们展示,
1) test 1
2) test 2
3) test 3
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点.请帮助.这是我到目前为止所做的代码.
public class AppointmentList extends Activity{
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.select_to_delete);
String[] myStringArray = new String[] { "test 1", "test 2", "test 3"};
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, myStringArray);
ListView listView = (ListView) findViewById(R.id.listView1);
listView.setAdapter(adapter);
}
}
Run Code Online (Sandbox Code Playgroud)
您应该创建自己的自定义适配器类并实现其方法...
以下是Custom Adapter类的完整示例:
private class Adapter extends BaseAdapter {
private ArrayList<String> array;
private Context ctx;
public Adapter(Context ctx) {
this.ctx = ctx;
array = new ArrayList<String>();
}
@Override
public int getCount() {
return this.array.size();
}
@Override
public Object getItem(int position) {
return this.array.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
/**
* add a String Item in a List
*
* @param item
*/
public void addItem(String item) {
this.array.add(item);
this.notifyDataSetChanged();
}
/**
* Delete an Item from a List
*
* @param position
*/
public void deleteItem(int position) {
this.array.remove(position);
this.notifyDataSetChanged();
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View newView;
if (convertView == null) {
newView = View.inflate(ctx, R.layout.item_layout, null);
} else {
newView = convertView;
}
String txt = (String) this.getItem(position);
// Here is what you're looking for:
((TextView) newView.findViewById(R.id.item_numb)).setText(""
+ (position + 1) + ". ");
// End;
((TextView) newView.findViewById(R.id.item_text)).setText(txt);
return newView;
}
}
Run Code Online (Sandbox Code Playgroud)
您可以像这样使用Adapter:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_to_do_list);
ListView ls = (ListView) findViewById(R.id.listView);
Adapter adapter = new Adapter(this);
ls.setAdapter(adapter);
}
Run Code Online (Sandbox Code Playgroud)