如何在单个列表视图字符串中添加多个索引


theList.add(data.getString(0));
theList.add(data.getString(1));
theList.add(data.getString(2));
theList.add(data.getString(3));
theList.add(data.getString(4));

我想将所有这些索引添加为单行

我试过以下代码,但它不起作用

theList.add(data.getString(0),data.getString(1),data.getString(2),data.getString(3),data.getString(4));

这是我班的全部代码。我要做的是从sqlite数据库中获取数据并显示在列表视图中。通过下面的代码,我在不同的行中获得值,但我希望它们在单行中

package com.example.project;
import android.database.Cursor;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
import java.util.ArrayList;
import java.util.List;
/**
* Created by Mitch on 2016-05-13.
*/
public class ViewListContents extends AppCompatActivity {
DBHelper myDB;
User user;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.viewlistcontents_layout);
ListView listView = (ListView) findViewById(R.id.listView);
myDB = new DBHelper(this);
//populate an ArrayList<String> from the database and then view it
ArrayList<String> theList = new ArrayList<>();
Cursor data = myDB.viewbuses();
if(data.getCount() == 0){
Toast.makeText(this, "There are no contents in this list!",Toast.LENGTH_LONG).show();
}else{
while(data.moveToNext()) {

theList.add(data.getString(0));
theList.add(data.getString(1));
theList.add(data.getString(2));
theList.add(data.getString(3));
theList.add(data.getString(4));
theList.add("");

ListAdapter listAdapter = new ArrayAdapter<>(this,android.R.layout.simple_list_item_1,theList);
listView.setAdapter(listAdapter);
}
}

}
}

提前感谢

这就是我解决问题的方法首先感谢先生。Zain他帮我完成了这件事。

我把字符串连接起来,它成功了。我想在值之间留出空间,所以我就是这样做的。

theList.add(data.getString(0)+"    "+data.getString(1)+"    "
+data.getString(2)+"    " +data.getString(3)+"    "+data.getString(4));  

一个好的做法是添加.Concat((而不是"+">

谢谢!

我建议使用RecyclerView,因为它提供了比ListView多得多的功能。它还可以带来更好的性能。您必须扩展RecyclerView.Adapter和RecyclerView.ViewHolder,如下所示。

  • MyAdapter类似于ArrayAdapter。它将RecyclerView与我们的数据连接起来
  • MyDataViewHolder存储列表中单个项目的所有视图。在我们的例子中,这是一个单一的TextView,但它可能更多
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.MyDataViewHolder> {
private List<String> mList;
public MyAdapter(List<String> list){
this.mList = list;
}
protected static class MyDataViewHolder extends RecyclerView.ViewHolder{
protected TextView viewData;
public MyDataViewHolder(View itemView) {
super(itemView);
viewData = (TextView) itemView.findViewById(R.id.data);
}
}
}

您还必须在MyAdapter中实现以下方法。

  • onCreateViewHolder从xml创建一个MyDataViewHolder
  • onBindViewHolder使用我们的数据填充MyDataViewHolder
  • 返回显示的元素数
@Override
public MyDataViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
View itemView = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.my_data, viewGroup, false);
return new MyDataViewHolder(itemView);
}
@Override
public void onBindViewHolder(MyDataViewHolder viewHolder, int i) {
String string = mList.get(i);
viewHolder.viewData.setText(person.getLastName());
}
@Override
public int getItemCount() {
return mList.size();
}

现在在onCreate函数中使用它。

mRecyclerView = (RecyclerView) findViewById(R.id.recyclerview);
mRecyclerView.setHasFixedSize(true);
recyclerView.setLayoutManager(new GridLayoutManager(getActivity(), numberOfColumns));
mAdapter = new MyAdapter(mList);
mRecyclerView.setAdapter(mAdapter);

最新更新