내 아이디어는 수동으로 이름을 입력 할 수있는 텍스트 필드를 갖는 것입니다.안드로이드 회 전자 및 editText
또한 이름 목록이 있습니다. 해당 목록에 동쪽 1 이름이있는 경우 Spinner
을 열어 선택을 제공하기 위해 EditText
오른쪽에 아이콘이 나타납니다.
항목이 선택되지 않은 경우 EditText
은 동일하게 유지되고 항목이 선택된 경우 EditText
에 해당 항목이 있습니다.
저는 지금까지의 가시성을 연구하고 있습니다. 그러나 제 문제는 onNothingSelected
이 전혀 해고되지 않는 것 같습니다.
public class MainActivity extends ActionBarActivity {
private Spinner spinner;
private EditText text2;
private ImageButton button2;
private String spinner_value = "";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
spinner = (Spinner)findViewById(R.id.spinner);
String[] str = {"","good", "dislike", "like", "hate", "moderate"};
spinner.setPrompt("Set Text");
ArrayAdapter<String> list = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_dropdown_item, str);
spinner.setAdapter(list);
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
TextView tv = (TextView)arg1;
spinner_value = tv.getText().toString();
if(spinner_value.length() == 0)
{
spinner_value = "Nothing";
}
Toast.makeText(getApplicationContext(), spinner_value, Toast.LENGTH_SHORT).show();
spinner = (Spinner) findViewById(R.id.spinner);
text2 = (EditText) findViewById(R.id.editText);
button2 = (ImageButton) findViewById(R.id.imageButton);
text2.setVisibility(View.VISIBLE);
button2.setVisibility(View.VISIBLE);
spinner.setVisibility(View.INVISIBLE);
String myStr = spinner.getSelectedItem().toString();
text2.setText(myStr);
text2.requestFocus();
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
Toast.makeText(getApplicationContext(), "NothingSelected", Toast.LENGTH_SHORT).show();
spinner = (Spinner) findViewById(R.id.spinner);
text2 = (EditText) findViewById(R.id.editText);
button2 = (ImageButton) findViewById(R.id.imageButton);
text2.setVisibility(View.VISIBLE);
button2.setVisibility(View.VISIBLE);
spinner.setVisibility(View.INVISIBLE);
text2.requestFocus();
}
});
}
}
그러면 어떤 경우에 트리거됩니까? Spinner를 열고 다른 곳을 클릭하여 아무것도 선택하지 않으면 나는 그렇지 않습니다. – Kev
아니요. 회 전자를 열면 첫 번째 항목이 이미 선택되어 있습니다. onNothingSelected()를 트리거하려면 현재 선택한 항목을 사용할 수 없게 설정해야합니다. 예를 들어보기는 Gone으로 설정됩니다. – iheanyi
이제 알았습니다. 감사 – Kev