设置Id并将其添加到Android中ListView的项目中

设置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

新安卓程序员来了。 第一:我对列表视图不太了解,我发现使用它很复杂

因此,我想将我的数据库数据(包含Id、名称)放到listview中,并在单击时获取项目的Id

我搜索了很多,但我刚刚发现:

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和适配器的更多信息,您的代码太糟糕了)