您好我正在使用android listview。我想创建一个动态列表视图,其中用户可以动态地向listview添加数据。所以它的工作正常。现在我的问题是我的列表在listview的开始位置添加了。我想在列表视图的最后位置添加添加的内容(比如在facebook帖子中添加评论)。有可能吗?请帮帮我。谢谢。)
我的活动课
public class MainActivity extends Activity {
private EditText etInput;
private Button btnAdd;
private ListView lvItem;
private ArrayList<String> itemArrey;
private ArrayAdapter<String> itemAdapter;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
setUpView();
}
private void setUpView() {
// TODO Auto-generated method stub
etInput = (EditText)this.findViewById(R.id.editText_input);
btnAdd = (Button)this.findViewById(R.id.button_add);
lvItem = (ListView)this.findViewById(R.id.listView_items);
itemArrey = new ArrayList<String>();
itemArrey.clear();
itemAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,itemArrey);
lvItem.setAdapter(itemAdapter);
btnAdd.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
addItemList();
}
});
etInput.setOnKeyListener(new View.OnKeyListener() {
public boolean onKey(View v, int keyCode, KeyEvent event) {
// TODO Auto-generated method stub
if (keyCode == KeyEvent.KEYCODE_ENTER) {
addItemList();
}
return true;
}
});
}
protected void addItemList() {
// TODO Auto-generated method stub
// TODO Auto-generated method stub
if (isInputValid(etInput)) {
itemArrey.add(0,etInput.getText().toString());
etInput.setText("");
itemAdapter.notifyDataSetChanged();
}
}
protected boolean isInputValid(EditText etInput2) {
// TODO Auto-generatd method stub
if (etInput2.getText().toString().trim().length()<1) {
etInput2.setError("Please Enter Item");
return false;
} else {
return true;
}
}
}
答案 0 :(得分:4)
从
中删除位置itemArrey.add(0,etInput.getText()的toString()); //位置= 0
试试这种方式。
itemArrey.add(etInput.getText().toString());
直接在最后添加你的字符串。
答案 1 :(得分:2)
您正在指定添加新元素的位置。只需避免使用位置,新项目将添加到列表末尾。
itemArrey.add( etInput.getText().toString() );
此外,您可能还想向下滚动到这个新添加的项目。所以你可以在xml中使用它们
android:stackFromBottom="true"
android:transcriptMode="alwaysScroll"
或使用setSelection()
这样做 -
lvItem.setSelection(countOfItems-1);