我正在创建一个可以查看系统中存在的用户的管理页面。我的想法是在一个页面中显示用户列表和详细信息。我听说使用listview非常繁琐。还有其他方法吗?
也许在textview中查看,但我不知道它是如何工作的。我必须在我的xml上添加很多textview吗?
我需要知道如何做的简单任务。我只需要知道如何使用任何方法查看页面中的数据。
非常感谢!希望能得到回应! = d
戴恩
再次问好
以下是listview的样子:
package log1.log2;
import android.app.ListActivity;
import android.database.Cursor;
import android.os.Bundle;
import android.widget.ArrayAdapter;
public class AdminMain extends ListActivity {
static final String[] COUNTRIES = new String[] {
"Macau", "Madagascar", "Malawi", "Malaysia", "Maldives", "Mali", "Malta", "Marshall Islands","Nicaragua", "Niger", "Nigeria", "Niue", "Norfolk Island", "North Korea", "Northern Marianas", "Norway", "Oman", "Pakistan", "Palau", "Panama", "Papua New Guinea", "Paraguay", "Peru"
};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setListAdapter(new ArrayAdapter<String>(this, R.layout.list_item, COUNTRIES));
ListView lv = getListView();
lv.setTextFilterEnabled(true);
lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
// When clicked, show a toast with the TextView text
Toast.makeText(getApplicationContext(), ((TextView) view).getText(),
Toast.LENGTH_SHORT).show();
}
});
}
对于上面的代码,数据写在代码本身。我的数据在我的数据库中,我需要它在列表视图中显示。我不知道怎么做。我尝试了一些想法:
public class AdminMain extends ListActivity {
DBAdapter db = new DBAdapter(this);
private String TEST;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
db.open();
Cursor c = (Cursor) db.getAllUser();
final String[] COUNTRIES = new String[] {
};
TEST=c.getString(1).toString();
setListAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, TEST));
getListView().setTextFilterEnabled(true);
}
}
我声明了一个字符串,我尝试从数据库中检索数据并将其保存到TEST字符串中。然后我尝试在列表视图中显示它:
setListAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, TEST));
getListView().setTextFilterEnabled(true);
但我不能在列表视图中加入'TEST'。将出现错误The constructor ArrayAdapter<String>(AdminMain, int, String) is undefined.
。
我希望有人能给我一个很好的答案。我期待着你的回复。感谢您花时间阅读本文。
-Dayne
这是我编辑的内容。
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
db.open();
Cursor c = (Cursor) db.getAllUser();
/*final String[] COUNTRIES = new String[] {
};*/
final String[] TEST = c.getString(1);
//TEST[]=c.getString(1).toString();
setListAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1));
getListView().setTextFilterEnabled(true);
}
正如您所看到的,我试图将数据库中的数据直接放入数组中,但它无法正常工作; final String[] TEST = c.getString(1);
。出现错误消息Type mismatch: cannot convert from String to String[]
。
答案 0 :(得分:1)
ListView
使用起来很繁琐,但有时,如果您的数据集非常庞大且重复,您可能需要考虑使用ListView
。
如果你仍然不想,你可以在你的xml中的ScrollView
中创建一个TextView
加一个标题,然后在你的java中,你使用for循环或者一段时间来循环在您的数据库结果上,每次准备好一组数据时,您都会创建一个新的TextView
并将其添加到ScroolView
。它会是这样的:
if (yourCursor.moveToFirst()) {
do {
//prepare your data
TextView tv = new TextView(yourContext);
tv.setText("yourData");
// you can set id, tag, text color, font, ...
yourScrollView.addView(tv);
} while (yourCursor.moveToNext());
}
yourCursor.close();
yourDB.close();