Android 列出与';s显示为文本

Android 列出与';s显示为文本,android,android-activity,android-adapter,Android,Android Activity,Android Adapter,我已经开始学习android编程,我被卡住了,我不知道如何使用listadapter(该应用程序应该是一个私人教练,你可以选择3种活动,比如训练类型、家庭或健身房和强度,根据你选择的内容,它应该向你展示练习)我已经设置了一个列表,单击这两个选项中的一个,将创建下一个活动的路径,正如代码中所示,但是,活动名称与列表中显示为文本的名称不同。我觉得我的逻辑在这里是失败的,但找不到一个方法来做这件事,除非埃尔斯。 (也许只使用按钮或某种类型的视图和onclicklisteners更容易做到这一点) 第二

我已经开始学习android编程,我被卡住了,我不知道如何使用listadapter(该应用程序应该是一个私人教练,你可以选择3种活动,比如训练类型、家庭或健身房和强度,根据你选择的内容,它应该向你展示练习)我已经设置了一个列表,单击这两个选项中的一个,将创建下一个活动的路径,正如代码中所示,但是,活动名称与列表中显示为文本的名称不同。我觉得我的逻辑在这里是失败的,但找不到一个方法来做这件事,除非埃尔斯。 (也许只使用按钮或某种类型的视图和onclicklisteners更容易做到这一点)

第二件事,如果在java中以这种方式编程,我可以移动列表的位置和列表中的文本(例如移到中间)吗?比如在xml中使用填充还是什么?谢谢

public class WorkoutPlace extends ListActivity {

String classes[] = { "WORKOUTHOME" , "WORKOUTGYM" };
// these should be   "HOME Workout", "GYM Workout"

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setListAdapter(new ArrayAdapter<String>(WorkoutPlace.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 Home_Gym = classes[position];
    try{
    Class ourClass = Class.forName("totaltrainer.com." + Home_Gym);
    Intent ourIntent = new Intent(WorkoutPlace.this, ourClass);
    startActivity(ourIntent);
    }catch(ClassNotFoundException e){
        e.printStackTrace();
    }
}
}
public class WorkoutPlace扩展ListActivity{
字符串类[]={“WORKOUTHOME”,“WORKOUTGYM”};
//这些应该是“家庭锻炼”、“健身房锻炼”
@凌驾
创建时受保护的void(Bundle savedInstanceState){
//TODO自动生成的方法存根
super.onCreate(savedInstanceState);
setListAdapter(新阵列适配器)(WorkoutPlace.this,
android.R.layout.simple_list_item_1,class));
}
@凌驾
受保护的void onListItemClick(列表视图l、视图v、整数位置、长id){
//TODO自动生成的方法存根
super.onListItemClick(左、右、位置、id);
字符串Home_Gym=类[位置];
试一试{
Class-ourClass=Class.forName(“totaltrainer.com.+Home\u-Gym”);
Intent-ourIntent=新的Intent(WorkoutPlace.this,ourClass);
星触觉(ourIntent);
}catch(classnotfounde异常){
e、 printStackTrace();
}
}
}

定义一个包含实际类的并行数组,如下所示:

String classes[] = { "HOME Workout" , "GYM Workout" };
Class actualClasses[] = { totaltrainer.com.WORKOUTHOME.class,
                          totaltrainer.com.WORKOUTGYM.class };
onListItemClick()中执行以下操作:

Intent ourIntent = new Intent(WorkoutPlace.this, actualClasses[position]);
startActivity(ourIntent);

注意:您确实应该更改类的名称,使它们不全是大写的。使用
WorkoutGym
而不是
WorkoutGym

我真的怀疑你是否能得到比你在列表中点击的课程更多的课程。当你点击第一个项目时会发生什么?我想我没有很好地解释自己,我得到了我想要的类,但是,我希望用户在选项列表中看到“家庭锻炼”和“健身房锻炼”,而不是代码中的“WORKOUTHOME”和“WORKOUTGYM”,这是这些活动的路径。看看如何实现自定义适配器或调整数据。