2012-01-10 4 views
0

Я хочу начать намерение через список. Но я не хочу, чтобы текст макета был названием намерения, которое оно прямо сейчас. Как мне сделать что-то обычай?Именование намерений в Android

Это моя попытка на что делает его:

public class Menu extends ListActivity { 
String Names[] = { "1 To 9 Tabels", "10 To 19 Tabels" }; 
String Classstart[] = {".First, .Second"}; 

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

@Override 
protected void onListItemClick(ListView l, View v, int position, long id) { 
    super.onListItemClick(l, v, position, id); 
    String Classstart = Names[position]; 
    try { 
     Class ClassNames; 
     ClassNames = Class.forName("com.sapphire.android." + Classstart); 
     Intent StartIntent = new Intent(Menu. this, ClassNames); 
     startActivity(StartIntent); 
    } catch (ClassNotFoundException e) { 
     e.printStackTrace(); 
    } 
} 
} 
+0

Не могли бы вы пояснить это: «но я не хочу, чтобы текст макета был названием намерения», я понятия не имею, о чем вы спрашиваете. – sgarman

ответ

0

Если я понимаю ваш код правильно, он выходит из строя при нажатии на пункт прямо сейчас, потому что вы начинаете неправильную активность. Попробуйте изменить его к этому:

@Override 
protected void onListItemClick(ListView l, View v, int position, long id) { 
    super.onListItemClick(l, v, position, id); 
    String activity = Classstart[position]; 
    try { 
     Class ClassNames; 
     ClassNames = Class.forName("com.sapphire.android." + activity); 
     Intent StartIntent = new Intent(Menu. this, ClassNames); 
     startActivity(StartIntent); 
    } catch (ClassNotFoundException e) { 
     e.printStackTrace(); 
    } 
} 

Обратите внимание, что я просто взять имя класса из массива Classstart, а не из массива имен.

+0

Спасибо, что сделал трюк. – Sapphire

Смежные вопросы