【发布时间】:2014-11-08 12:54:25
【问题描述】:
我确实开发了一个 android 项目,其中包括 edittext 、 button 和 listview 。我有一个 mainActivity,其中在其布局中包含这些视图。当用户在 Edittext 上输入文本并单击按钮时,文本将转移到 listview。到这里,一切正常,我可以这样做。除此之外,我确实创建了由 ArrayAdapter 扩展的类,因为我想优化应用程序。我想用 1000 个文本等测试应用程序,多亏了这个,我可以优化我的适配器,但我不知道如何测试它?
public class TodoItemAdapter extends ArrayAdapter<TodoItem> {
int resource;
public TodoItemAdapter(Context context, int resource,List<TodoItem> objects) {
super(context, resource ,objects);
this.resource = resource ;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
TodoItem toDoItem = getItem(position);
String toDoTask = toDoItem.task;
String toDoDate = DateFormat.getDateInstance().format(toDoItem.enteringData );
String inflaterService = Context.LAYOUT_INFLATER_SERVICE;
LayoutInflater inflater = (LayoutInflater) getContext().getSystemService(inflaterService);
View toDoView = inflater.inflate(this.resource,null);
TextView taskView = (TextView) toDoView.findViewById(R.id.tvTask);
TextView dateView = (TextView) toDoView.findViewById(R.id.tvDate);
taskView.setText(toDoTask);
dateView.setText(toDoDate);
return toDoView;
}
}
public class MyActivity extends Activity {
private ArrayList <TodoItem> todoItems;
private TodoItemAdapter todoArrayAdapter ;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my);
final EditText etTodo = (EditText) findViewById(R.id.etTodo);
Button btnAddTodo = (Button) findViewById(R.id.btnAddTodo);
ListView lvTodoItems = (ListView) findViewById(R.id.todoListView);
todoItems = new ArrayList<TodoItem>();// line1
todoArrayAdapter = new TodoItemAdapter(this,R.layout.todoitem,todoItems) ;//line2
lvTodoItems.setAdapter(todoArrayAdapter); //line3
//line1,line2 and line3 apply ( DataSource -> Adapter -> AdapterView ) schema.
btnAddTodo.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
todoItems.add(new TodoItem(etTodo.getText().toString()));
todoArrayAdapter.notifyDataSetChanged();
etTodo.setText("");
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.my, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
【问题讨论】:
-
我确实用一个简单的 for 循环测试了我的项目 for(int i = 0 ; i
标签: android listview testing android-listview android-edittext