1

この例のベストプラクティスは何ですか?

Activity1は SQLite で INSERTS を実行し、Activity2 を開始します。

Activity2で、ユーザーは [戻る] ボタンをクリックして、Activity1 に戻ります。しかし、INSERT の代わりに、SQLite 上のデータに UPDATE を実行したいと考えています。

そのユーザーが「戻ってきた」のを制御するにはどうすればよいですか?

ベストプラクティスは何ですか?

4

2 に答える 2

1

ボタンをクリックすると、アクティビティ 2 が開始されると仮定します。

public static final int YOURCONSTANTNUMBER = 77;
   //Button Value
 Button second = (Button)findViewById(R.id.firstButton);
 second.setOnClickListner(this);

@Override
public void onClick(View v)
{
  switch(v.getId())
   {
      case R.id.btnSecondActivity:
      //Code for inserting data into database
      Intent secondactivity = new Intent(FirstActivity.this, SecondActivity.class);
      startActivity(secondactivity);
      break;
    }
}

2 番目のアクティビティで

戻るボタンを制御するには、以下のコードを使用します

 @Override
 public void onBackPressed()
 {      
//Code for update     
 } 

編集

startActivityForResult()結果を知らせるメソッドを使用して 2 番目のアクティビティを呼び出します。

最初のアクティビティで

    Intent secondactivity = new Intent(FirstActivity.this, SecondActivity.class);
    startActivityForResult(secondactivity,YOURCONSTANTNUMBER);

結果の取得

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {  

 super.onActivityResult(requestCode, resultCode, data);   
 switch(requestCode)
 {
 case YOURCONSTANTNUMBER:
     // It will execute if you returning from second activity 
     //Update you database here
     }
 }

2 番目のアクティビティで

このメソッドの呼び出しは適切でしたsetResult(YOURCONSTANTNUMBER);

それが役に立てば幸い

于 2012-10-30T16:15:55.323 に答える
0

Activity1 で両方の DB 操作を行いたいと仮定すると、ここで startActivityForResult() を検討してください。

http://developer.android.com/reference/android/app/Activity.html#startActivityForResult(android.content.Intent, int)

于 2012-10-30T16:17:34.990 に答える