我真的在努力将菜单链接在一起。我想要创建的应用程序是一个菜单集合,这些菜单可以指向我计划在应用程序中打开的各个站点的URL链接。我创建了一个包含8个选项的列表活动菜单,我有8个类,还有其他选项。我的问题是如何将菜单链接在一起。
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
// Create an array of Strings, that will be put to our ListActivity
String[] names = new String[] { "P", "Ch", "Le", "Le", "B", "Sk", "Awa", "Tra"};
// Create an ArrayAdapter, that will actually make the Strings above
// appear in the ListView
this.setListAdapter(new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_checked, names));
}
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
super.onListItemClick(l, v, position, id);
// Get the item that was clicked
Object o = this.getListAdapter().getItem(position);
String keyword = o.toString();
Toast.makeText(this, "You selected: " + keyword, Toast.LENGTH_LONG)
.show();
}
}
目前所有这一切都是使用toast方法打印选择,但是当我选择它时如何让它切换到p.java类。在基本的我会采用名称变量,并说如果names = p goto p.java,我已经google了,虽然我得到了答案的一部分,但我无法弄清楚如何实现它。
非常感谢提前。
答案 0 :(得分:0)
我怀疑你想要的不是一个类,而是一个有问题的类的实例。一种方法是使用Map:
Map<String, Runner> runners = new HashMap<String, Runner>();
runners.put("P", new P());
runners.put("Ch", new Ch());
// etc.
(其中Runner是您所有类实现的接口)。然后,在你的onListItemClick()
方法中,你有吐司:
runners.get(keyword).run();
(其中run()是您要启动的方法。)
更新(以解决您的评论)
很难确切地说出哪些代码放在哪里,但基于你的问题:
您可以在“活动”中为跑步者创建一个字段,并在同一个onCreate函数中初始化它。所以这部分已经处理完毕。
Runner界面可以像这样简单(在它自己的文件中):
public interface Runner {
public void run();
}
并且每个类(P,Ch,Le等)在构造函数中都会有implements
位:
public class P implements Runner {
并且必须包含run()方法(它可以简单地调用您想要为URL调用的任何现有方法): public void run(){ //做你想做的任何事情 }