我有一个包含用户及其数据的数据库。 然后用他们的名字制作ListView。 然后如何将Click侦听器设置为ListView与我的List相关联? 因此,当我单击List元素strats new Activity并包含所有用户详细信息时,不仅仅是名称?
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) {}
});
}
}
答案 0 :(得分:2)
您需要在User类中实现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);
}
});
在新的活动电话中:
Bundle b = getIntent().getBundleExtra("bundle");
User user = b.getParcelable("user");
答案 1 :(得分:0)
使用ListView#setOnItemClickListener(AdapterView.OnItemClickListener listener)
。
答案 2 :(得分:0)
在我看来,您应该使用Cursor Adpater
从数据库填充listview。在每行的项目点击事件中,您可以获得相应的光标对象,将一些细节传递给下一个活动,这样它可以获取更多用户详细信息并显示给用户。
您首先需要了解基础知识。请查看this教程以获得一些想法。
祝你好运!