android - 在同一 Activity 中,單擊按鈕單擊,保持或者更改值

  显示原文与译文双语对照的内容

在代碼代碼中,我將新值傳遞給同一個 Activity ( OneActivity ),但是當我單擊該按鈕時,它似乎打開了一個新的Activity ( 刷新屏幕) 。 如何修改以下代碼以維護 Activity,並在單擊按鈕時不刷新它?


final Button fruit_q = (Button) findViewById(R.id.fruit_q);
fruit_q.setOnClickListener(new OnClickListener()//Next step
 {
 public void onClick(View v)
 {
 Intent i = new Intent(getApplicationContext(), OneActivity.class);

 if(position!= 35)//35 is end of index in gridview array
 {
//passing array index
 String name = getResources().getResourceEntryName(imageAdapter.mThumbIds[position+1]);
 i.putExtra("image_name", name);
 i.putExtra("id", position+1);
 i.putExtra("rememberID_frist", firstTimeID_1);
 i.putExtra("rememberID_second", position+1);
 whatfruit.stop();
 correctAnswer.stop();
 }
 else//ber sin chea answer dol index 35 hery jang back to index 0
 {
//passing array index
//String name = getResources().getResourceEntryName(imageAdapter.mThumbIds[position+1]);
 i.putExtra("image_name","apple");
 i.putExtra("id", 0);
 i.putExtra("rememberID_frist", firstTimeID_1);
 i.putExtra("rememberID_second", 0);
 whatfruit.stop();
 }
 startActivity(i);
 }
 });

謝謝!

时间: 原作者:

看來你只是想增加在點擊按鈕和位置 NOT 35的位置的值。 由於將四個值作為IntentExtras傳遞,請嘗試以下操作:

創建作為附加項傳遞的四個值,也作為 Activity 中的全局變數。 你可以在 onCreate() 中將傳遞的值分配給變數( 比如 。 然後你在 onClickListener 中所做的一切就是


fruit_q.setOnClickListener(new OnClickListener()//Next step
 {
 public void onClick(View v)
 {
 if(position!= 35)//35 is end of index in gridview array
 {
 id = position + 1;
 secondID = position + 1;
 }
 else//ber sin chea answer dol index 35 hery jang back to index 0
 {
 id = 0;
 secondID = 0;
 }
//call method to show this new values (1)
 }
 });

在( 1 ) 中提到的方法,你可以設計這樣的方法,使你的Activity 中的所有可視化和背景計算都可以通過 onCreate()onClickListener 來調用。

示例


public class MyActivity extends Activity{
//... 

 private int a, b, c;

 protected void onCreate(Bundle b){
//do usual stuff
 a = getIntent().getIntExtra("a");
 b = getIntent().getIntExtra("b");
 c = getIntent().getIntExtra("c");
//...
 fruit_q.setOnClickListener(new OnClickListener(){
 public void onClick(View v){
 a += 1;
 b += 2;
 c -= 3;
 displayStuff();
 }
 }
 displayStuff();
 }

 private void displayStuff(){
//get displaying components like TextView
//set some of the values like a, b or c as Text
 }

//...
}

我做了 NOT 檢查了這個代碼,它應該只顯示我的意思。 這樣,你可以直接在 Activity 中操作現有值,而無需刷新它。

原作者:
...