настройка просмотра данных о новой активности - PullRequest
0 голосов
/ 10 января 2012

Итак, у меня есть ListView, в котором я нажимаю, чтобы начать новую активность под названием MerchantView. Между действиями я передаю uid, который является уникальным идентификатором продавца. Затем я извлекаю данные продавца из БД и хочу просмотреть эти данные в этом представлении. Все работает (во время отладки я вижу, что данные взяты из БД и правильно переданы в методы setText), но данные не отображаются, я делаю это правильно?

public class MerchantView extends Activity {
public void onCreate(Bundle savedInstanceState) {

     super.onCreate(savedInstanceState);
     setContentView(R.layout.merchant);

     String desc = "";
     String name = "";


     Bundle extras = getIntent().getExtras();
     String uid = "0";
     if(extras !=null) {
         uid = extras.getString("uid");     
     }

     // get merchant from database
     if(Integer.valueOf(uid) > 0){
         Cursor c = Utilities.db.query(mydb.TABLE_MERCHANT,
                null,
                "uid=?", new String[] {uid}, null, null, null);

         if(c.moveToFirst() != false){
             name = c.getString(c.getColumnIndex(MerchantsColumns.COLname));
             desc = c.getString(c.getColumnIndex(MerchantsColumns.COLdesc));
         }
         // set values to UI
         TextView descUI = (TextView) findViewById(R.id.merchantDescription);
         descUI.setText(desc);
         TextView nameUI = (TextView) findViewById(R.id.merchantName);
         nameUI.setText(name);           
     }
     else{

     }

     Button buttonMerchants = (Button) findViewById(R.id.buttonMerchants);
     buttonMerchants.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            finish();
        }
     });



}

}

Ответы [ 2 ]

0 голосов
/ 01 февраля 2012

Данные были установлены правильно.Проблема была в макете.Заголовок (LinearLayout) вверху имел две кнопки, и он был установлен на android: layout_height = "fill_parent", который занимал все пространство.После исправления, данные отображаются правильно.

0 голосов
/ 10 января 2012

Попробуйте ниже код, надеюсь, это поможет

SQLiteDatabase myDB = this.openOrCreateDatabase("databasename.db", SQLiteDatabase.OPEN_READWRITE, null);
     try{
            Cursor c = myDB.rawQuery("select name, desc from abctable where uid="+uid, null); 
            int Column1 = c.getColumnIndex("name");
            int Column2 = c.getColumnIndex("desc");

        // Check if our result was valid.
        c.moveToFirst();
        if (c != null) {
            int i = 0;
            // Loop through all Results
            do {
                i++;
             String name = c.getString(Column1);
             String desc = c.getString(Column2);
             TextView descUI = (TextView) findViewById(R.id.merchantDescription);
                  descUI.setText(desc);
                  TextView nameUI = (TextView) findViewById(R.id.merchantName);
         nameUI.setText(name);
            } while (c.moveToNext()); 
                 } 


        } catch (SQLiteException e) { 
            e.printStackTrace();
        } finally { 
             if (myDB != null) 
                  myDB.close(); 
        }
...