开发者

Android ListView problems

开发者 https://www.devze.com 2023-04-12 14:25 出处:网络
I can\'t get my ListView work. When i run emulator it doesn\'t display ListView with data from databse wihich I created.

I can't get my ListView work. When i run emulator it doesn't display ListView with data from databse wihich I created.

I would like to insert data to database through EditText and then display data

Main Program

package test.test;
import java.util.ArrayList;
import android.app.Activity;
import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.text.Editable;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.TextView;



public class TestActivity extends Activity {
/** Called when the activity is first created. */
private ListView listview;
private TextView textview;
private Button button;
private EditText edittext;
SQLiteDatabase databas;


//private String[] test = {"abc","abc","abc", "abc", "abc", "abc"};

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    ArrayList<String> test2 = new ArrayList<String>();  

    listview = (ListView)findViewById(R.id.test);
    textview = (TextView)findViewById(R.id.mm);
    button = (Button)findViewById(R.id.kanp);
    edittext = (EditText)findViewById(R.id.textetid);

    databas = (new dbHelper(this)).getWritableDatabase();
    final ContentValues values = new ContentValues();

    button.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            Editable ord = edittext.getText();
            String ordDb = ord.toString();

            //String sql =   "INSERT INTO ordlista (ord) " +
            //"VALUES (" + ordDb + ")";
            //databas.rawQuery(sql, null);

            values.put("ord", ordDb);
            long varde = databas.insert("ordlista", null, values);

            String varde2 = Long.toString(varde);
            textview.setText(varde2);


        }
    });
    //#############################TORSDAG###############################



    Cursor c = databas.rawQuery( "select ord from ordlista", null);
    startManagingCursor(c);

    int n = 1;
    while(c.isBeforeFirst() == false){
        String dbVarde = c.getString(n); 
        test2.add(dbVarde);
        c.moveToNext();
        n++;

    }







  开发者_JAVA百科  ArrayAdapter<String> aa;
    aa = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, test2);
    listview.setAdapter(aa);


    //listview.setAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, test));




}



  }


You could try using a SimpleCursorAdapter and save the overhead of maintaining an ArrayAdapter. Rather than having to populate an ArrayList all the time, you can just create a Cursor against the query when you need it updated and set the ListView's adapter. A SimpleCursorAdapter also has the added benefit of handling the list item's population for you based on the columns you provide.

For example:

String[] fieldsFromDB = new String[] {"ord"};
int[] fieldsOnListItem = new int[] {android.R.id.text1};
Cursor c = databas.rawQuery("select ord from ordlista", null);

listview.setAdapter(new SimpleCursorAdapter(this,android.R.layout.simple_list_item_1,c,fieldsFromDB,fieldsOnListItem));
0

精彩评论

暂无评论...
验证码 换一张
取 消