如何链接类和菜单

时间:2010-09-19 16:24:09

标签: java android eclipse

我真的在努力将菜单链接在一起。我想要创建的应用程序是一个菜单集合,这些菜单可以指向我计划在应用程序中打开的各个站点的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了,虽然我得到了答案的一部分,但我无法弄清楚如何实现它。

非常感谢提前。

1 个答案:

答案 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(){         //做你想做的任何事情     }