회 전자에서 선택한 값을 기준으로 ImageView (기본값은 비어 있음)를 설정하려고했습니다. 는 그래서 mainActivity.java
Spinner에서 선택한 값을 기준으로 imageView src를 설정하십시오.
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
sp_home = (Spinner) findViewById(R.id.spinner_home_team);
sp_away = (Spinner) findViewById(R.id.spinner_away_team);
sp_home.setOnItemSelectedListener(new OnItemSelectedListener() {
public void onItemSelected(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
if (!sp_home.getSelectedItem().toString().equals("Seleziona Squadra")) {
setTeamLogo(sp_home.getSelectedItem().toString(), "home");
}
}
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
});
sp_away.setOnItemSelectedListener(new OnItemSelectedListener() {
public void onItemSelected(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
if (!sp_away.getSelectedItem().toString().equals("Seleziona Squadra")) {
setTeamLogo(sp_away.getSelectedItem().toString(), "away");
}
}
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
});
}
의 setOnItemSelectedListener
방법은 내가 setTeamLogo 내부의 코드를 실행할 때 문제가 온다 완벽하게 작동합니다. 발생 된
private void setTeamLogo(String teamName, String home_or_away_team){
int resId = getResources().getIdentifier(teamName, "drawable", getPackageName());
Toast.makeText(getBaseContext(), resId,
Toast.LENGTH_LONG).show();
}
는 예외입니다 : android.content.res.Resources $ NotFoundException : 문자열 리소스 ID 번호 0x0으로
어떤 생각을 왜 변수 대신 이미지의 이름을 사용하는 경우 teamName 모든 것이 완벽하게 작동합니까? 그것을 찾을 수없는, 당신의 오류 - 당신은 그것을는 해당 문자열 리소스 ID를 찾기 위해 노력할 것입니다 정수를 전달하면
귀하의 코드는 실제로 예외를 고정되어 있지만 RESID 변수가 0입니다, teamName에 저장된 값이 무시됩니다 것으로 보인다. 이상하게도 Toast 메시지에 teamName의 값을 출력하면 제대로 표시됩니다. – GioCrem83