2012-11-27 4 views
0

먼저 프로그래밍 멍청한 놈입니다. 사용자가 Clear_data를 선택하면 Clear_data 활동으로 이동하게됩니다.ListView 어댑터 및 ArrayAdapter

나는 일반적인 프로그래밍에서 여전히 길을 잃어 버렸기 때문에 try and catch에 문제가있다. Text_Colour 인 첫 번째 선택 항목을 선택하면 Text_Colour 대신 Clear_data 활동이 열립니다. 당신의 시간들에 대한

public class Settings extends ListActivity { 


String classes[] = { "Text_Colour", "Clear_data", "Contact Developer" }; 


@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setListAdapter(new ArrayAdapter<String>(Settings.this, android.R.layout.simple_list_item_1, classes)); 
} 

@Override 
protected void onListItemClick(ListView l, View v, int position, long id) { 
    // TODO Auto-generated method stub 
    super.onListItemClick(l, v, position, id); 

    String colours = classes[0]; 
    String cdata = classes[1]; 

    try { 
    Class Class1 = Class.forName("com.example.test1." + colours); 
    Intent intent1 = new Intent(Settings.this, Class1); 
    startActivity(intent1); 
    }catch(ClassNotFoundException e) { 
     e.printStackTrace(); 
    } 
    try { 
    Class Class2 = Class.forName("com.example.test1." + cdata); 
    Intent intent2 = new Intent(Settings.this, Class2); 
    startActivity(intent2); 
    } 
    catch(ClassNotFoundException d) { 
     d.printStackTrace(); 
    } 

} 

감사 : 여기

는 코드입니다.

답변

2

당신은 아마이 같은 스위치 연산자를 추가 sholud :

@Override 
protected void onListItemClick(ListView l, View v, int position, long id) { 
    // TODO Auto-generated method stub 
    super.onListItemClick(l, v, position, id); 

    String colours = classes[0]; 
    String cdata = classes[1]; 

switch(position){ 
case 0: 
    try { 
    Class Class1 = Class.forName("com.example.test1." + colours); 
    Intent intent1 = new Intent(Settings.this, Class1); 
    startActivity(intent1); 
    }catch(ClassNotFoundException e) { 
     e.printStackTrace(); 
    } 
break; 
case 1: 
    try { 
    Class Class2 = Class.forName("com.example.test1." + cdata); 
    Intent intent2 = new Intent(Settings.this, Class2); 
    startActivity(intent2); 
    } 
    catch(ClassNotFoundException d) { 
     d.printStackTrace(); 
    } 
break; 
} 

} 
+0

감사합니다 그것을 위해! switch 문을 사용하는 것을 완전히 잊었습니다! – Ket

+0

@Ket 언제나 환영합니다. Pls가 도움이된다면 대답을 수락합니다;) –

관련 문제