기본설명을 하자면 액티비티는 2개
Main ---- Sub 입니다.
메인의 텍스트뷰를 눌러 리스너를 통해 Sub액티비티로 이동하여
Sub의 특정 텍스트뷰를 누르면 그에 해당하는 값을 넘겨오는 것입니다. 그런데 도저히 이해가 안가게
오류가납니다. 바로 돌아올때 '취소'를 누르면 Sub가 안정적으로 꺼지는데, '완료'를 누르면 오류와 함께
앱이 꺼집니다. 계속 보는데 문법상 수정할것도 없는거 같고, 해결이 안되고있습니다. 도와주십쇼..
1. Main
TextView t;
int color;
static final int GET_STRING = 1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
t = (TextView)findViewById(R.id.a1);
t.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this,ColorSet.class);
startActivityForResult(intent, GET_STRING);
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == GET_STRING){
if (resultCode == RESULT_OK) {
String text = data.getStringExtra("SELECT_COLOR");
switch (text) {
case "hotPink":
color = Color.argb(150, 255, 000, 153);
t = (TextView) findViewById(id);
t.setBackgroundColor(color);
case "pink":
color = Color.argb(150, 255, 204, 204);
t = (TextView) findViewById(id);
t.setBackgroundColor(color);
}}}
}
2. Sub
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_color_set);
Button bt_ok=(Button)findViewById(R.id.bt_ok);
Button bt_cancel=(Button)findViewById(R.id.bt_cancel);
bt_ok.setOnClickListener(new myButtonClick());
bt_cancel.setOnClickListener(new myButtonClick());
}
class myButtonClick implements View.OnClickListener {
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.bt_ok:
String color = "pink";
Intent in = new Intent();
in.putExtra("SELECT_COLOR", color);
setResult(RESULT_OK, in);//오류발생
finish();
case R.id.bt_cancel:setResult(RESULT_CANCELED); finish();
}
}
}