我不想在副本中进行更改,而是我要求在变量中作为引用进行更改,以便更改应反映在Name
类中。
在我的应用程序中,我在new_standard = Standard.objects.create(Name=lname,ShortName=sname,calcmethod=method,Description=descr,course=course,Order=stdnum)
new_standard.save()
类中声明为公共静态的全局变量“key”,我创建了一个“重置键”按钮,它对另一个活动产生了一个Intent。
在该活动中,我想更改主要活动的键值。我使用的是mainactivity
,之后,我在key1变量中进行了更改,但在更改变量hen后,我返回主活动,键变量仍然相同。
所以,我希望将更改作为参考,而不是作为对象或变量的副本。
答案 0 :(得分:0)
您可以创建一个静态属性:
private static String key1;
public void setKey(String newKey){
key1 = newKey;
}
在另一个活动电话中:
MainActivity.setKey(NewKey);
答案 1 :(得分:0)
首先更改key1的值,然后将此值分配给 MainActivity 键变量,如下所示。
MainActivity.key = key1;
答案 2 :(得分:0)
对于OnClickListener而言,它不起作用。我已经遇到了这个问题,对于解决方案,我不得不使用一种可以更改MainActivity变量值的方法。
如果您在OnClickListener下工作,则可以像我一样按照以下步骤操作。
public class MainActivity extends Activity {
public static String mode = "Easy";
public static int dimension = 3;
......
}
public class SelectLevel extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_select_level);
Button easy = (Button) findViewById(R.id.radio0);
Button medium = (Button) findViewById(R.id.radio1);
easy.setOnClickListener(respondClick);
medium.setOnClickListener(respondClick);
}
public OnClickListener respondClick = new OnClickListener() {
public void onClick(View MainActivity) {
Context ctx = getApplicationContext();
CharSequence text;
switch (MainActivity.getId()) {
case R.id.radio0:
text = "StartGame Pressed";
/*MainActivity.dimension=3;
MainActivity.mode="Easy";*/ //it will not work
changeMainActivityVariable(3, "Easy"); // it's working fine
break;
case R.id.radio1:
text = "StartGame Pressed";
changeMainActivityVariable(4, "Medium");
break;
default:
changeMainActivityVariable(3, "Easy");
}
}
};
public void changeMainActivityVariable(int dimension, String mode) {
MainActivity.dimension = dimension;
MainActivity.mode = mode;
}
}