strings.xml>>
<string-array name="zero">
<item>A</item>
<item>B</item>
<item>C</item>
<item>D</item>
</string-array>
첫번째 xml>>
Spinner spin = (Spinner)findViewById(R.id.spinner);
spin.setPrompt("choice");
adspin = ArrayAdapter.createFromResource(this, R.array.zero, android.R.layout.simple_spinner_item);
adspin.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spin.setAdapter(adspin);
spin.setOnItemSelectedListener(new OnItemSelectedListener() {
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
if(mInitSpinner == false) {
mInitSpinner = true;
return;
}
//*/
one=adspin.getItem(position).toString();
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
// TODO Auto-generated method stub
}
});
-------------------------------------------------------------------------------------
Intent myintent = new Intent(this, A_b.class);
myintent.putExtra("com.example.terry.basicintentsample.A",one);
두번째 xml>>
Intent myintent = getIntent();
String two = myintent.getStringExtra("com.example.terry.basicintentsample.A");
TextView view1 = (TextView)findViewById(R.id.TextView1);
view1.setText(two);
String fruit;
if(two=="A") {
String fruit = "apple";
} else if(two=="B") {
String fruit = "graph";
} else if(two=="C") {
String fruit = "peach";
} else if(two=="D") {
String fruit = "lemon";
} else {
String fruit = "fail";
}
TextView view2 = (TextView)findViewById(R.id.TextView2);
view2.setText(fruit);
결과>>
C (spinner에서 선택한 값)
fail
strings.xml에서 보듯이 spinner의 내용에 들어갈 array를 만들고
첫번째 xml에서 보면 one이라는 String 변수에 spinner에서 선택한 알파벳을 넣어줍니다.
그리고 Intent를 이용해서 두번째 xml로 전달해줍니다.
그러면 두번째 xml에서 전달받은 String을 two라는 String 변수에 넣고,
이를 if문에 사용합니다.
그리고 layout에 textview1에는 spinner에서 선택한 알파벳을,
textview2에는 if문을 이용한 과일이름을 출력합니다.
Q1. spinner에서 처음 값이 A로 안드로이드 화면에 뜹니다.
그래서 A를 선택하려고 spinner를 선택하지 않고 그대로 두면
결과 layout의 textview1에 빈칸으로 뜹니다.
default값으로 A로 지정하려면 어떻게 해야 하나요?
Q2. 첫번째 xml에서 spinner가 선택한 문자열을 받아서 if문에 사용을 하는데
if문에서 인식을 못합니다. 무조건 if문 내의 else에 있는 fail만 출력합니다.
String을 ==으로 표현하는게 잘못인가해서 two.equals("A")형태로도 해보고
view1.getText().equals("A")형태로도 해봤는데 two값을 아예 못받는 것 같습니다.
그런데 view1에 출력은 잘 됩니다. 무엇이 문제인가요?
전문가 분들의 도움 부탁드립니다.