按钮单击,维护或更改同一活动中的值

时间:2013-06-19 11:12:42

标签: android

在代码中我将新值传递给同一个Activity(OneActivity),但是当我点击按钮时,它似乎打开了一个新的Activity(刷新屏幕)。如何修改下面的thr代码来维护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);
            }
        });

谢谢!

1 个答案:

答案 0 :(得分:0)

似乎您只想在单击按钮时增加位置值并且位置不是35.因为您将四个值作为IntentExtras传递,请尝试以下操作:

在活动中创建作为Extras传递的四个值也作为全局变量。 在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)中提到的方法,以便设置您的活动的所有视觉和背景计算内容,以便可以从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
    }

    // ...
}

我没有直接检查这个代码,它应该只显示我的意思。像这样,您可以直接在Activity中操作现有值而无需刷新它。