设置新活动的视图数据

时间:2012-01-10 10:47:28

标签: android listactivity simplecursoradapter

所以我有一个ListView,我点击它来启动名为​​MerchantView的新Activity。 在我传递的活动之间,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 :(得分:0)

数据设置正确。问题出在布局上。顶部的标题(LinearLayout)有两个按钮,它设置为android:layout_height =“fill_parent”,它占用了整个空间。修复后,数据显示正常。

答案 1 :(得分:-1)

尝试下面的代码希望它有所帮助

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(); 
        }