如何使用textview查看数据库中的数据?

时间:2010-08-12 06:29:14

标签: android database

我正在创建一个可以查看系统中存在的用户的管理页面。我的想法是在一个页面中显示用户列表和详细信息。我听说使用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


Hello Sephy

这是我编辑的内容。

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[]

1 个答案:

答案 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();