我有一个选项Activity
,我使用RadioButton
选择颜色。默认情况下,White
颜色设置为android:checked="true"
。现在,当我到达Canvas
时,我需要根据选择的Paint
动态更改RadioButton
颜色。
这是我尝试过的代码:
String radioButtonSelected = "";
switch (checkedRadioButton) {
case R.id.CheckRed : radioButtonSelected = "Red";
break;
case R.id.CheckBlue : radioButtonSelected = "Blue";
break;
case R.id.CheckWhite : radioButtonSelected = "White";
break;
}
Intent i = new Intent(HandwritingRecognitionOptionTab.this,HandwritingRecognitionCanvas.class);
i.putExtra("setColor",radioButtonSelected);
//startActivity(i); // because I don't want to start the activity immediately after this
在Canvas
的课程中:
Bundle getValue = getIntent().getExtras();
drawColor = getValue.getString("setColor");
if(drawColor.equals("White"))
intColor = 1;
if(drawColor.equals("Red"))
intColor = 2;
if(drawColor.equals("Blue"))
intColor = 3;
mPaint = new Paint();
mPaint.setDither(true);
mPaint.setColor(Color.WHITE);
if(intColor == 1)
mPaint.setColor(Color.WHITE);
if(intColor == 2)
mPaint.setColor(Color.RED);
if(intColor == 3)
mPaint.setColor(Color.BLUE);
但只要NullPointerException
Activity
开始,我就会收到Canvas
。重要的是要注意,默认情况下,白色应该是颜色。此外,这不会持久存储它吗?我应该查看SharedPreferences吗?
答案 0 :(得分:1)
在阅读完评论后,看起来你没有使用给定的Intent开始其他活动,因此NullPointerException因为Bundle在下一个活动中不会包含相同的字符串。
您可以选择停用以下选项:
1> Shared Prefrences (As highlighted by you)
2> Some DB entry.
3> Some file storage
4> Singleton pattern
但对我来说,最好的一个就是共同的偏好。您可能还想查看此link以获取详细信息