2014-07-25 1 views
-1

저는 Java 및 Android 프로그래밍에 익숙하지 않습니다. Android 프로젝트의 경우 String에서 두 개의 char 배열을 변형 한 다음 결과를 ListView에 추가해야합니다.[char]의 배열을 String으로 변환 한 다음 Android의 ListView에 추가 하시겠습니까?

두 개의 문자는 "AA"에서 "ZZ"까지의 char 쌍을 나타내는 for 루프에서옵니다. for-loop를 사용하여 알파벳 문자의 ASCII 코드를 생성합니다.

btn_MANAGER_SlaveRefresh.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     new Thread(new Runnable() { 
      public void run() { 
       char[] AdrBuffer = null; 
       final String txt_Adr = "ZZ"; 

       for (byte MSB_Adr = 65; MSB_Adr <= 90; MSB_Adr++) { 
        for (byte LSB_Adr = 65; LSB_Adr <= 90; LSB_Adr++) { 
         AdrBuffer[0] = (char)MSB_Adr; 
         AdrBuffer[1] = (char)LSB_Adr; 
         txt_Adr.copyValueOf(AdrBuffer); 

         runOnUiThread(new Runnable() { 
          public void run() { 
           adapter_lst_MANAGER_SlaveActive.add(txt_Adr); 
          } 
         }); 
        } 
       } 
      } 
     }).start(); 
    } 
}); 

버튼을 클릭하면 응용 프로그램이 중지되고 닫힙니다.

내가 잘못 생각해 내도록 도와 줄 수 있습니까?

+0

copyValueOf는 당신이 생각하는대로하지 않습니다. – njzk2

답변

1

사용의 StringBuilder이 도움이 될

StringBuilder builder = new StringBuilder(); 
builder.append((char)MSB_Adr); 
builder.append((char)LSB_Adr); 

String txt_Adr = builder.toString(); 

희망

+0

고피 감사합니다! 그것은 올바르게 작동합니다! 귀하의 도움에 매우 감사드립니다, 그리고 내 가난한 질문에 대한 미안 해요 : -/ –

0

나는 당신의 코드를 약간 변경 한 결국, 그것은했다! while 루프를 별도의 스레드에 포함 시켰습니다. 괜찮 았지만 .copyValueOf() 메서드로 인해 문제가 발생했을 수 있습니다. 아래 코드의 세련된 버전을 제공합니다.

public class MainActivity extends Activity implements Runnable { 


private ListView lv; 


@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 


    lv = (ListView) findViewById(R.id.listView1); 

    Thread thread = new Thread(this); 
    thread.start(); 





    } 

    @Override 
    public void run() { 
    // TODO Auto-generated method stub 
    final ArrayAdapter<String> adapter; 
    adapter = new ArrayAdapter<String>(this, R.layout.list, R.id.name); 
     int j=65; 
     for(int i=0;i<=25;i++) { 


      char one=(char) j; 

      adapter.add(""+one+one); 

      j++; 

     } 
     lv.setAdapter(adapter); 

     } 
    } 

이 코드가 제대로 작동하는지 여부와 코드를 이해하는데 문제가 있으면 알려주십시오. 건배!

+0

당신의 대답에 대한 감사 Sushant :-) –

관련 문제