【问题标题】:How to link classes and menus如何链接类和菜单
【发布时间】:2010-09-19 16:24:09
【问题描述】:

我真的很难将菜单链接在一起。我要创建的应用程序 os 是一组菜单,这些菜单指向我计划在应用程序中打开的各种站点的 url 链接。我创建了一个包含 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 变量并说 if names = p goto p.java,我已经用谷歌搜索了,虽然我得到了部分答案,但我不知道如何实现它。

提前致谢。

【问题讨论】:

    标签: java android eclipse


    【解决方案1】:

    我怀疑您想要的不是类,而是相关类的实例。一种方法是使用地图:

    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() 是您要启动的方法)。

    更新(解决您的评论)

    很难确切地说在哪里放置哪些代码,但根据您的问题:

    您可以在 Activity 中将跑步者设为一个字段,并在同一个 onCreate 函数中对其进行初始化。这样那部分就处理好了。

    Runner 界面可以像这样简单(在它自己的文件中):

    public interface Runner {
       public void run();
    }
    

    您的每个类(P、Ch、Le 等)在构造函数中都会有一个 implements 位:

    public class P implements Runner {
    

    并且必须包含一个 run() 方法(它可以简单地调用您想要为 URL 调用的任何现有方法): 公共无效运行(){ // 在这里做任何你想做的事 }

    【讨论】:

    • 嗨,卡尔,谢谢您的回复,对不起,我是菜鸟,也许我在走路之前就跑了,但是我应该在哪里放置代码,我是否删除其他类并拥有其他菜单在同一个班级中,或者我在哪里可以找到这样的例子,这样我就可以看到它是如何工作的
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-10
    • 1970-01-01
    • 2019-01-18
    • 1970-01-01
    • 1970-01-01
    • 2014-01-12
    相关资源
    最近更新 更多