隣接する Spinner で選択されている内容に基づいて TextView の値を変更しようとすることで、私は完全に機知に富んでいます。
public class SpinnerSelectItemListener implements OnItemSelectedListener {
private Context context;
public SpinnerSelectItemListener(Context c){
this.context = c;
}
public void onItemSelected(AdapterView<?> parent, View v, int position, long id) {
View view = null;
TextView textView = null;
LayoutInflater inflater = LayoutInflater.from(context);
parent.getItemAtPosition(position);
view = new View(context);
view = inflater.inflate(R.layout.common_app_header, null);
textView = (TextView)view.findViewById(R.id.customer_name_value);
textView.setText("John");
}
public void onNothingSelected(AdapterView<?> parent) {
// TODO Auto-generated method stub
}
}
これをデバッグモードで実行すると、すべてが期待どおりに行われますが、すべてが完了すると、デバッガーが新しい値を表示していても、エミュレーターで textView の値は変更されません。私が見逃している本当にばかげた何かが間違いなくあります。助けてください。
編集:状況は、スピナーから従業員の ID 番号を選択したようなもので、選択に応じて、従業員の名前を表示する TextView が変わります。変更したい TextView は、スピナーの外にあります。
EDIT2:リスナーをインラインで定義すると、これは正常に実行されます。つまり、次のように記述します
modelspinner.setOnItemSelectedListener(new OnItemSelectedListener() {
public void onItemSelected(AdapterView<?> parent, View v, int position, long id) {
TextView textView = null;
textView = (TextView)findViewById(R.id.customer_segment_value);
textView.setText("Commercial");
textView = (TextView)findViewById(R.id.TIV_value);
textView.setText(R.string.app1_name);
}
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
});
私が以前に書いたコードの何が問題なのか、誰か説明してもらえますか?