Android 如何填充ListView和ListOnClick数据?

Android 如何填充ListView和ListOnClick数据?,android,listview,Android,Listview,我有一个包含用户及其数据的数据库。 然后用他们的名字制作ListView。 然后如何将click listener设置为与我的列表关联的ListView? 所以,当我点击List元素时,它会显示所有用户详细信息的新活动,而不仅仅是名称 package com.test.tabs; import java.util.ArrayList; import java.util.List; import com.test.tabs.R; import android.os.Bundle; import

我有一个包含用户及其数据的数据库。 然后用他们的名字制作ListView。 然后如何将click listener设置为与我的列表关联的ListView? 所以,当我点击List元素时,它会显示所有用户详细信息的新活动,而不仅仅是名称

package com.test.tabs;

import java.util.ArrayList;
import java.util.List;
import com.test.tabs.R;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;

public class SelectFragment extends Fragment {

    private ListView listView;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

        View rootView = inflater.inflate(R.layout.fragment_select, container, false);
        return rootView;
    }

    @Override
    public void onActivityCreated(Bundle savedInstanceState) {

        super.onActivityCreated(savedInstanceState);
        MySQLiteOpenHelper db = new MySQLiteOpenHelper(getActivity());
        List<User> users = db.getAllUsers();

        List<String> your_array_list2 = new ArrayList<String>();

        for (int i = 0; i < users.size(); i++) {

            your_array_list2.add(users.get(i).getFirstName());
        }
        listView = (ListView) getActivity().findViewById(R.id.listView);

        ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1,your_array_list2);
        listView.setAdapter(arrayAdapter);

        listView.setOnItemClickListener(new OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {}
        });
    }
}
package com.test.tabs;
导入java.util.ArrayList;
导入java.util.List;
导入com.test.tabs.R;
导入android.os.Bundle;
导入android.support.v4.app.Fragment;
导入android.view.LayoutInflater;
导入android.view.view;
导入android.view.ViewGroup;
导入android.widget.AdapterView;
导入android.widget.AdapterView.OnItemClickListener;
导入android.widget.ArrayAdapter;
导入android.widget.ListView;
公共类SelectFragment扩展了片段{
私有列表视图列表视图;
@凌驾
CreateView上的公共视图(布局、充气机、视图组容器、捆绑包保存状态){
视图根视图=充气机。充气(R.layout.fragment\u select,container,false);
返回rootView;
}
@凌驾
已创建ActivityState上的公共无效(Bundle savedInstanceState){
super.onActivityCreated(savedInstanceState);
MySQLiteOpenHelper db=新的MySQLiteOpenHelper(getActivity());
List users=db.getAllUsers();
列出您的_array_list2=new ArrayList();
对于(int i=0;i
使用
列表视图#setOnItemClickListener(AdapterView.OnItemClickListener listener)
您需要在用户类中实现parcelable:

public class User implements Parcelable
{
....
}
现在,您可以将用户附加/发送到下一个活动,如下所示:

listView.setOnItemClickListener(new OnItemClickListener() 
{
    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) 
    {
         User user = adapter.getItem(position);
         Bundle b = new Bundle();
         b.putParcelable("user", user);

         Intent i = new Intent(context, OtherActivity.class);
         i.putExtra("bundle", b);
         startActivity(i);
    }
});

在我看来,您应该使用
游标Adpater
从数据库填充listview。在每行的item click事件上,您可以获得相应的游标对象,将一些详细信息传递给下一个活动,这样它就可以获取更多用户详细信息并显示给用户

你需要先了解基本知识。看一看教程,有一些想法


祝你好运

如何在侦听器中使用用户的LinkedList?
AdapterView.OnItemClickListener
有一种方法
onItemClick(AdapterView父项、视图、int位置、长id)
。您可以使用
view
获取要查看的文本集,该文本集将是要显示其详细数据的用户名。或者使用适配器中视图的位置
position
,并从适配器获取该视图的参考底图数据。无论哪种方式,您都会知道应该为哪个用户显示详细数据。这并不能提供问题的答案。若要评论或要求作者澄清,请在其帖子下方留下评论。@itsme86是的,是的。详细的问题是:“如何将click listener设置为与我的列表关联的ListView?”。答案是:“使用ListView#setOnItemClickListener(AdapterView.OnItemClickListener)”。此外,我还进一步说明了下一步要做什么。@michal.z将这些信息包括在您的答案中会很有帮助,这样人们就不需要仔细阅读这些评论来找到如何在给定的上下文中应用您的解决方案。然而,“使用X”通常更适合作为对问题的注释。你可以参考这个问题的其他答案,看看完整的答案通常是什么样子。
Bundle b = getIntent().getBundleExtra("bundle");
User user = b.getParcelable("user");