我有一个应用程序从数据库中获取字符串并将其放在ListView中。 这是从数据库中获取字符串的代码:
public void setLogView(String date){
ArrayAdapter<TextView> adapter = new ArrayAdapter<TextView>(this, android.R.layout.simple_list_item_1);
listView.setAdapter(adapter);
DataBaseMain dataBase = new DataBaseMain(this);
dataBase.open();
String[][] all = dataBase.dayLog(date);
dataBase.close();
if(all == null)
return;
String temporay = "";
for(int j = 0; j < all[0].length; j++){
temporay = "";
for (int i = 0; i < all.length; i++){
TextView text = new TextView(this);
temporay = temporay + " " + all[i][j];
text.setText(temporay);
adapter.add((TextView)text);
}
}
}
似乎我在ListView中获得了新的TextView,但是文本搞砸了。
我检查了我的temporay
字符串,很好。
是把他放在ListView中的某个地方。
logcat或异常中没有错误。
这是我在我的应用程序ListView中得到的我想要的文本。(我想放入picutrue但我没有足够的重复:
答案 0 :(得分:1)
在那里,从您提供的图像中可以清楚地看到
试试,这个..
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1);
listView.setAdapter(adapter);
您的适配器要附加textView对象而不是您提供的String。
然后在loop..like
中添加temporay而不是textView adapter.add(temporay);
这一定会解决你的问题。
答案 1 :(得分:0)
将适配器更改为ArrayAdapter<String>
,然后添加temporay
而不是整个列表视图。
否则,您可以扩展ArrayAdapter并覆盖getView()
答案 2 :(得分:0)
假设您正在尝试使用单独的layout.xml显示自定义列表视图中的文本,其中只包含textview。
检查下面给出的例子,这就是我如何做到这一点:
首先获取要显示的数据并将其存储在ArrayList中。此处al_rec_id
,al_rec_name
分别是Integer
和String
类型的arraylists。
cursor = database.query("records_data", new String[]{"rec_id", "rec_name"}, "cat_id=?", new String[]{cat_id+""}, null, null, null);
if(cursor.getCount() == 0)
Toast.makeText(getBaseContext(), "No records found.", Toast.LENGTH_SHORT).show();
else
{
while(cursor.moveToNext())
{
al_rec_id.add(cursor.getInt(0));
al_rec_name.add(cursor.getString(1));
}
cursor.close();
}
之后,将此arraylist与ArrayAdapter绑定,然后将此适配器设置为listview,如下所示。这里,array_adapter_all_records是String
类型的ArrayAdapterarray_adapter_all_records = new ArrayAdapter<String>(this, R.layout.single_row_home, R.id.textViewSingleRowHome, al_rec_name);
listview_all_records.setAdapter(array_adapter_all_records);
这是我的single_row_home.xml代码:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="15dp"
android:background="#ffffff" >
<TextView
android:id="@+id/textViewSingleRowHome"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
style="@style/listview_only_textview"
android:text="TextView" />
</RelativeLayout>
多数民众赞成。你完成了...... !!!
答案 3 :(得分:0)
创建一个类自定义适配器,它将扩展您的ArrayList适配器,您可以膨胀包含textview的不同xml,也可以在自定义适配器的getView方法中创建动态textview。如果你需要一个例子,请告诉我。