簡體   English   中英

Intent傳遞使用數據庫的問題

[英]Issues In Intent Passing Using Database

我的問題是如何使用另一個putExtra方法將評級欄值傳遞給另一個活動?任何一個解決這個問題? 這是我的第一項活動

public void giveRating(View v)


    {
            String Name =  spinner.getSelectedItem().toString();
            Float Rating = ratingBar.getRating();
        String query = "insert into Rating values('"+Name+"',"+Rating+")";
        try
        {
            sqLiteDatabase.execSQL(query);
            AlertDialog.Builder ab = new AlertDialog.Builder(this);
            ab.setMessage("DATA SAVED");
            ab.show();
        }catch (Exception e)
        {
            Log.e("InsertionException",""+e);
        }
    }
    public void viewRating(View v)
    {
        try {
            StringBuffer sb = new StringBuffer();
            String query = "select * from Rating";
            Cursor cursor = sqLiteDatabase.rawQuery(query, null);
            boolean res = cursor.moveToFirst();
            if (res) {
                do {
                    String Name = cursor.getString(0);
                    String Rating = cursor.getString(1);

                    sb.append(Name + ":" + Rating+"\n");
                } while (cursor.moveToNext());
            } else {

                AlertDialog.Builder ab = new AlertDialog.Builder(this);
                ab.setMessage("No data To read");
                ab.show();
            }

            String value = sb.toString();
            Intent i = new Intent(MainActivity.this, Items.class);
            i.putExtra("k1", value);
            startActivity(i);


        }
        catch (Exception e)
        {
            Log.e("ReadDataEXception",""+e);
        }

第二項活動

TextView textView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.items_layout);
        textView = (TextView)findViewById(R.id.tv3);
        textView1 = (TextView)findViewById(R.id.tv4);
        Intent i = getIntent();
        String name;
        Bundle b = getIntent().getExtras();
        name= b.getString("k1");
        textView.setText(name);
        textView.setTextSize(20);

數據庫活動

 public Database(Context c)


    {
        super(c,DBNAME,null,VERSION);
    }
    @Override
    public void onCreate(SQLiteDatabase db)
    {
        try {
            String query = "create table Rating(Name TEXT,Rating REAL)";
            db.execSQL(query);
        }catch (Exception e)
        {
            Log.e("TableCreationException",""+e);
        }
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

    }
}

您可以簡單地添加另一個帶有keyName putExtra

    Intent i = new Intent(MainActivity.this, Items.class);
    i.putExtra("name", name);
    i.putExtra("rating",rating);
    startActivity(i);

從Items活動中獲取

    Intent i = getIntent();
    String name;
    String rating;

    Bundle b = getIntent().getExtras();

    name= b.getString("name");
    rating= b.getString("rating");

    textView.setText(name);
    textView1.setText(rating);

    textView.setTextSize(20);

希望它對你有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM