2012-10-15 5 views
0

나는 StringsA라는 클래스가 있고 그 안에 문자열 배열이 :안드로이드 로딩 문자열 배열은 프로그램

public class StringsA { 

static String Names[] = {"Larry", "Moe", "Curly", "John"}; 

} 

내 주요 클래스의 ButtonTextView있다가. 내가 원하는 것은 Button을 클릭 할 때마다 TextView의 텍스트를 strings 배열과 다른 단어로 설정하는 것입니다. 예를 들면 다음과 같습니다. 현재 항목이 "Moe"이고 버튼을 클릭하면 TextView이 "John"으로 변경됩니다 (순서는 변경이 아니라 임의적입니다).

나의 현재 활동 코드 :

setContentView(R.layout.main); 
    Button a = (Button) findViewById(R.id.button1); 
    TextView b = (TextView) findViewById(R.id.tv);   

    Resources i = getResources(); 
    i.getResourceName(StringsA.Names); 

    a.setOnClickListener(new View.OnClickListener() { 

     public void onClick(View v) {    

     } 
    }); 
} 

내가 i.getResourceTypeName에서 오류가납니다. Button을 클릭하면 TextView 텍스트를 문자열 중 하나로 변경해야합니까?

답변

13

Android 리소스를 최대한 활용하여 strings.xml에 정의 된 문자열 배열에서 값을로드하십시오. 예 : 그런 다음

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <string-array name="planets_array"> 
     <item>Mercury</item> 
     <item>Venus</item> 
     <item>Earth</item> 
     <item>Mars</item> 
    </string-array> 
</resources> 

:

private static final Random RAND = new Random(); 

    public void onCreate(Bundle savedInstanceState) { 
    setContentView(R.layout.main); 
    Button myButton = (Button) findViewById(R.id.button1); 
    TextView myTextField = (TextView) findViewById(R.id.tv);  

    final String[] values = getResources().getStringArray(R.array.planets_array); 
    myButton.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) {  
      String nextValue = values[RAND.nextInt(values.length)]   
      myTextField.setText(nextValue); 
     } 
    }); 
    } 
+0

감사 마빈의 두 줄 아래, u는 나에게 도움을 추가 할 =) –

+0

당신은 환영합니다. 질문이 해결되면 옆에있는 체크 표시를 사용하여 대답을 수락 된 것으로 표시 할 수 있습니다. –

+0

이전 답변을 사용했는데 정상적으로 작동합니다. 감사 –

0

가 온 클릭 방법

int readomIndex = (int)(Math.random() * 3); 
b.setText(Names[readomIndex]);