设置Id并将其添加到Android中ListView的项目中
新安卓程序员来了。 第一:我对列表视图不太了解,我发现使用它很复杂 因此,我想将我的数据库数据(包含Id、名称)放到listview中,并在单击时获取项目的Id 我搜索了很多,但我刚刚发现:设置Id并将其添加到Android中ListView的项目中,android,Android,新安卓程序员来了。 第一:我对列表视图不太了解,我发现使用它很复杂 因此,我想将我的数据库数据(包含Id、名称)放到listview中,并在单击时获取项目的Id 我搜索了很多,但我刚刚发现: import android.app.Activity; import android.content.Context; import android.os.Bundle; import android.view.View; import android.view.ViewGroup; import and
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AbsListView;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.LinearLayout;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
public class test extends Activity {
String[] wordlist = new String[] { "a", "b", "c" };
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
wordlist[2] = "abds";
ListView list = new ListView(this);
list.setAdapter((ListAdapter) new MyAdapter(test.this, wordlist));
list.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
Object entry= parent.getItemAtPosition(position);
Toast.makeText(test.this, entry.toString(), Toast.LENGTH_SHORT).show();
}
});
setContentView(list);
}
private class MyAdapter extends ArrayAdapter<String> {
public MyAdapter(Context context, String[] strings) {
super(context, -1, -1, strings);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
LinearLayout listLayout = new LinearLayout(test.this);
listLayout.setLayoutParams(new AbsListView.LayoutParams(AbsListView.LayoutParams.WRAP_CONTENT,
AbsListView.LayoutParams.WRAP_CONTENT));
listLayout.setId(5000);
TextView listText = new TextView(test.this);
listText.setId(5001);
listLayout.addView(listText);
listText.setText(super.getItem(position));
return listLayout;
}
}
}
导入android.app.Activity;
导入android.content.Context;
导入android.os.Bundle;
导入android.view.view;
导入android.view.ViewGroup;
导入android.widget.AbsListView;
导入android.widget.AdapterView;
导入android.widget.AdapterView.OnItemClickListener;
导入android.widget.ArrayAdapter;
导入android.widget.LinearLayout;
导入android.widget.ListAdapter;
导入android.widget.ListView;
导入android.widget.TextView;
导入android.widget.Toast;
公共类测试扩展了活动{
字符串[]单词列表=新字符串[]{“a”、“b”、“c”};
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
字表[2]=“abds”;
ListView列表=新的ListView(此);
setAdapter((ListAdapter)newmyadapter(test.this,wordlist));
list.setOnItemClickListener(新的OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父视图、视图、整型位置、,
长id){
对象条目=父项。getItemAtPosition(位置);
Toast.makeText(test.this,entry.toString(),Toast.LENGTH_SHORT).show();
}
});
setContentView(列表);
}
私有类MyAdapter扩展了ArrayAdapter{
公共MyAdapter(上下文上下文,字符串[]字符串){
super(上下文,-1,-1,字符串);
}
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
LinearLayout listLayout=新的LinearLayout(test.this);
listLayout.setLayoutParams(新的AbsListView.LayoutParams(AbsListView.LayoutParams.WRAP_内容,
AbsListView.LayoutParams.WRAP_CONTENT);
setId(5000);
TextView listText=新的TextView(test.this);
setId(5001);
添加视图(listText);
setText(super.getItem(position));
返回列表布局;
}
}
}
只是我可以显示字符串,而不是Id。使用SimpleCursorAdapter用数据库中的数据填充ListView,例如-(来自google的第一个链接) 阅读有关ListView和适配器的更多信息,您的代码太糟糕了)