Im 운동 로그를 작성 중입니다. 사용자가 새로운 운동 유형을 추가 할 수 있기를 바랍니다.새로운 문자열을 리소스 문자열 배열에 동적으로 추가하십시오.
리소스의 문자열 배열을 만들고 리소스의 문자열 배열에서 문자열을 가져 오는 회 전자를 만들었습니다.
자바 코드에서 자원 문자열 배열에 새 문자열을 추가하는 방법을 모르겠다. 이 코드를 시도했지만 예외가 발생합니다. 돕는
감사합니다 :)
public void onClick(View v) {
switch(v.getId()){
case R.id.setNewExercise:
String[] exerciseStringArray = getResources().getStringArray(R.array.exerciseTypes);
ArrayAdapter<CharSequence> list = ArrayAdapter.createFromResource(this, R.array.exerciseTypes, android.R.layout.simple_list_item_1);
String exerciseCheck = addNewExercise.getText().toString();
try{
for (int i = 0; i < exerciseStringArray.length; i++)
{
if (exerciseCheck.equals(exerciseStringArray[i]))
{
Toast.makeText(getApplicationContext(), "This exercise already exist", Toast.LENGTH_LONG).show();
break;
}
else if (i == exerciseStringArray.length - 1 && exerciseCheck.equals(exerciseStringArray[i]) == false)
{
list.add(exerciseCheck);
Toast.makeText(getApplicationContext(), "Added Successfully", Toast.LENGTH_LONG).show();
break;
}
}
}catch(Exception e){
Toast.makeText(getApplicationContext(), "wtf", Toast.LENGTH_LONG).show();
}
}
}
필자는 지금이 코드를 시도하고 내 스피너는 비어로드되고 난 새 문자열을 저장하려고 할 때 힘이 폐쇄 얻을.
/////////////////////Exercise spinner/////////////////////
// Create an ArrayAdapter using the string array and a default spinner layout
list = new ArrayList<CharSequence>();
exerciseAdapter = new ArrayAdapter<CharSequence>(this, R.array.exerciseTypes, list);
// Specify the layout to use when the list of choices appears
exerciseAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
// Apply the adapter to the spinner
workOutChoose.setAdapter(exerciseAdapter);
}
@Override
public void onClick(View v) {
switch(v.getId()){
case R.id.setNewExercise:
String exerciseCheck = addNewExercise.getText().toString();
try{
if (exerciseAdapter.getPosition(exerciseCheck) >= 0)
{
Toast.makeText(getApplicationContext(), "This exercise already exist", Toast.LENGTH_LONG).show();
break;
}
else
{
exerciseAdapter.add(exerciseCheck);
exerciseAdapter.notifyDataSetChanged();
Toast.makeText(getApplicationContext(), "Added Successfully", Toast.LENGTH_LONG).show();
break;
}
}
catch(Exception e){
Toast.makeText(getApplicationContext(), "wtf", Toast.LENGTH_LONG).show();
}
}
}
감사합니다. 어댑터 정보를 얻을 수있는 좋은 소스가 있습니까? – tomer
@tomer :이 책에서 발췌 한 내용은'ArrayAdapter' 사용에 대해 다루고 있습니다. http://commonsware.com/Android/excerpt.pdf – CommonsWare
감사합니다. – tomer