显示到listview android studio时无法分隔项目

显示到listview android studio时无法分隔项目,android,android-listview,android-arrayadapter,Android,Android Listview,Android Arrayadapter,我正在学习Android,到目前为止,我已经开始创建联系人列表。列表是使用SQLlight存储的,但是当我试图在ListView中显示信息时,每个联系人都显示在同一部分中 我得到的结果是 联系人1 联系人2 联系人3 public class MainActivityFragment extends Fragment { DatabaseHelper mydb; ArrayAdapter<String> adapter; private static ListView listVi

我正在学习Android,到目前为止,我已经开始创建联系人列表。列表是使用SQLlight存储的,但是当我试图在ListView中显示信息时,每个联系人都显示在同一部分中

我得到的结果是

联系人1

联系人2

联系人3

public class MainActivityFragment extends Fragment {
DatabaseHelper mydb;
ArrayAdapter<String> adapter;
private static ListView listView;


public MainActivityFragment() {
}

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

    mydb = new DatabaseHelper(getActivity());

    adapter = new ArrayAdapter<>(
            //gets information about MainActivity/ this fragment's parent activity
            getActivity(),
            //Id for contact item layout
            R.layout.contact_list_item,
            //gets the arraylist of contacts
            getContacts()
            );

    View rootView = inflater.inflate(R.layout.fragment_main, container, false);

    //Get reference  to the list view and then set the adapter to it.
    listView = (ListView) rootView.findViewById(R.id.listView_contacts);
    listView.setAdapter(adapter);

    return rootView;
}
/*
Method to get contacts from the Database
 */
public List<String> getContacts(){

    Cursor result = mydb.getData();
    List<String> nameList = new ArrayList<String>();

    if(result.getCount() == 0){
        nameList.add("No Contacts available");
        return nameList;
    }

    StringBuffer buffer = new StringBuffer();
    while(result.moveToNext()){
        //buffer.append("ID :" + result.getString(0)+"\n");
        buffer.append("Name :" + result.getString(1)+"\n");
        buffer.append("Phone :" + result.getString(2)+"\n");
        buffer.append("Email :" + result.getString(3)+"\n");
        buffer.append("B-Day :" + result.getString(4) + "\n");

    }
    nameList.add(buffer.toString());
    return nameList;
}
而不是

联系人1

public class MainActivityFragment extends Fragment {
DatabaseHelper mydb;
ArrayAdapter<String> adapter;
private static ListView listView;


public MainActivityFragment() {
}

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

    mydb = new DatabaseHelper(getActivity());

    adapter = new ArrayAdapter<>(
            //gets information about MainActivity/ this fragment's parent activity
            getActivity(),
            //Id for contact item layout
            R.layout.contact_list_item,
            //gets the arraylist of contacts
            getContacts()
            );

    View rootView = inflater.inflate(R.layout.fragment_main, container, false);

    //Get reference  to the list view and then set the adapter to it.
    listView = (ListView) rootView.findViewById(R.id.listView_contacts);
    listView.setAdapter(adapter);

    return rootView;
}
/*
Method to get contacts from the Database
 */
public List<String> getContacts(){

    Cursor result = mydb.getData();
    List<String> nameList = new ArrayList<String>();

    if(result.getCount() == 0){
        nameList.add("No Contacts available");
        return nameList;
    }

    StringBuffer buffer = new StringBuffer();
    while(result.moveToNext()){
        //buffer.append("ID :" + result.getString(0)+"\n");
        buffer.append("Name :" + result.getString(1)+"\n");
        buffer.append("Phone :" + result.getString(2)+"\n");
        buffer.append("Email :" + result.getString(3)+"\n");
        buffer.append("B-Day :" + result.getString(4) + "\n");

    }
    nameList.add(buffer.toString());
    return nameList;
}
联系人2

public class MainActivityFragment extends Fragment {
DatabaseHelper mydb;
ArrayAdapter<String> adapter;
private static ListView listView;


public MainActivityFragment() {
}

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

    mydb = new DatabaseHelper(getActivity());

    adapter = new ArrayAdapter<>(
            //gets information about MainActivity/ this fragment's parent activity
            getActivity(),
            //Id for contact item layout
            R.layout.contact_list_item,
            //gets the arraylist of contacts
            getContacts()
            );

    View rootView = inflater.inflate(R.layout.fragment_main, container, false);

    //Get reference  to the list view and then set the adapter to it.
    listView = (ListView) rootView.findViewById(R.id.listView_contacts);
    listView.setAdapter(adapter);

    return rootView;
}
/*
Method to get contacts from the Database
 */
public List<String> getContacts(){

    Cursor result = mydb.getData();
    List<String> nameList = new ArrayList<String>();

    if(result.getCount() == 0){
        nameList.add("No Contacts available");
        return nameList;
    }

    StringBuffer buffer = new StringBuffer();
    while(result.moveToNext()){
        //buffer.append("ID :" + result.getString(0)+"\n");
        buffer.append("Name :" + result.getString(1)+"\n");
        buffer.append("Phone :" + result.getString(2)+"\n");
        buffer.append("Email :" + result.getString(3)+"\n");
        buffer.append("B-Day :" + result.getString(4) + "\n");

    }
    nameList.add(buffer.toString());
    return nameList;
}
联系人3

public class MainActivityFragment extends Fragment {
DatabaseHelper mydb;
ArrayAdapter<String> adapter;
private static ListView listView;


public MainActivityFragment() {
}

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

    mydb = new DatabaseHelper(getActivity());

    adapter = new ArrayAdapter<>(
            //gets information about MainActivity/ this fragment's parent activity
            getActivity(),
            //Id for contact item layout
            R.layout.contact_list_item,
            //gets the arraylist of contacts
            getContacts()
            );

    View rootView = inflater.inflate(R.layout.fragment_main, container, false);

    //Get reference  to the list view and then set the adapter to it.
    listView = (ListView) rootView.findViewById(R.id.listView_contacts);
    listView.setAdapter(adapter);

    return rootView;
}
/*
Method to get contacts from the Database
 */
public List<String> getContacts(){

    Cursor result = mydb.getData();
    List<String> nameList = new ArrayList<String>();

    if(result.getCount() == 0){
        nameList.add("No Contacts available");
        return nameList;
    }

    StringBuffer buffer = new StringBuffer();
    while(result.moveToNext()){
        //buffer.append("ID :" + result.getString(0)+"\n");
        buffer.append("Name :" + result.getString(1)+"\n");
        buffer.append("Phone :" + result.getString(2)+"\n");
        buffer.append("Email :" + result.getString(3)+"\n");
        buffer.append("B-Day :" + result.getString(4) + "\n");

    }
    nameList.add(buffer.toString());
    return nameList;
}
public类MainActivityFragment扩展了片段{
数据库助手mydb;
阵列适配器;
私有静态ListView ListView;
公共维护活动片段(){
}
@凌驾
创建视图上的公共视图(布局、充气机、视图组容器、,
Bundle savedInstanceState){
mydb=新的DatabaseHelper(getActivity());
适配器=新阵列适配器(
//获取有关MainActivity/此片段的父活动的信息
getActivity(),
//联系人项目布局的Id
R.layout.contact\u list\u项目,
//获取联系人的arraylist
getContacts()
);
视图根视图=充气机。充气(R.layout.fragment_main,容器,错误);
//获取对列表视图的引用,然后将适配器设置为它。
listView=(listView)rootView.findViewById(R.id.listView\u联系人);
setAdapter(适配器);
返回rootView;
}
/*
方法从数据库中获取联系人
*/
公共列表getContacts(){
游标结果=mydb.getData();
列表名称列表=新的ArrayList();
if(result.getCount()==0){
姓名列表。添加(“无联系人”);
返回姓名列表;
}
StringBuffer=新的StringBuffer();
while(result.moveToNext()){
//append(“ID:+result.getString(0)+”\n”);
append(“名称:”+result.getString(1)+“\n”);
buffer.append(“Phone:+result.getString(2)+”\n”);
buffer.append(“电子邮件:+result.getString(3)+”\n”);
buffer.append(“B-Day:+result.getString(4)+”\n”);
}
nameList.add(buffer.toString());
返回姓名列表;
}
}

activity_main.xml

<fragment xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:id="@+id/fragment"
android:name="com.example.jak.contacts.MainActivityFragment"
tools:layout="@layout/fragment_main" android:layout_width="match_parent"
android:layout_height="match_parent" />

fragment_main.xml

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context=".MainActivityFragment"
android:orientation="vertical">

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Add Contact"
    android:id="@+id/button_Add_Contact"
    android:layout_gravity="center_horizontal|bottom" />

<ListView
    android:layout_width="match_parent"
    android:layout_height="410dp"
    android:id="@+id/listView_contacts"
    android:layout_gravity="right"
    />

联系\u list\u item.xml

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:minHeight="?android:attr/listPreferredItemHeight"
    android:gravity="center_vertical"
    android:id="@+id/contact_list_item_textView">


同一部分是什么意思?是视觉上的吗?同一部分?或者它们被添加到同一个列表项中?你怎么知道它们都在同一个位置?您使用的只是文本视图,您看到的可能是三个文本视图。如果单击每个联系人,会发生什么情况?您看到的是全部选中还是一次一个?当我尝试只点击1时,它们都被选中。在每个单独的接触之后,只有一条分隔线,而不是一条分隔线。谢谢你的回答,我解决了这个问题。我没有从数据库中正确检索信息。