在代码中我将新值传递给同一个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);
}
});
谢谢!
答案 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中操作现有值而无需刷新它。