【问题标题】:how can I use selected menu item value inside userdefined method in android如何在android中的用户定义方法中使用选定的菜单项值
【发布时间】:2015-06-05 06:39:19
【问题描述】:

我正在开发 android 应用程序。我想根据菜单项中选择的值绑定列表视图中的数据。但是我不能在我的用户定义方法 getdatalatlog(double latitude, double longitude) 中使用该选定的菜单项值。

下面是我的代码。

public boolean onOptionsItemSelected(MenuItem item) {

    switch (item.getItemId()) {
    case R.id.action_serch:
        openSearch();
        return true;
    }
    switch (item.getItemId()) {

    case R.id.five:
        Toast.makeText(getBaseContext(), "You selected 5km",     Toast.LENGTH_SHORT).show();
        break;

    case R.id.ten:
        Toast.makeText(getBaseContext(), "You selected 10km",    Toast.LENGTH_SHORT).show();
     break;
    case R.id.fifteen:
        Toast.makeText(getBaseContext(), "You selected 15km",   Toast.LENGTH_SHORT).show();

        break;

    default:
        return super.onOptionsItemSelected(item);
 }
return true;

以下是我的用户定义方法:

  private void getdatalatlog(double latitude, double longitude) {
    // TODO Auto-generated method stub

    String url = "http://192.168.0.106/PHP/webservice/comments.php?latitude='"+latitude+"'&longitude='"+longitude+"'";
    aq.progress(R.id.progressBar1).ajax(url, JSONObject.class, this,"jsonCallback");

}`

在 menuitem 中,值是 5、10、15。我想在上面的 userdefind 方法中使用该选定值。 请指导我。 提前致谢。

【问题讨论】:

  • 你想将值传递给你的方法吗?
  • 你的问题到底是什么?
  • 是的,我想在我的用户定义方法中传递选定的菜单项值。

标签: android arrays json


【解决方案1】:

在类的顶部定义一个名为 value 的变量,并在 onCreate() 方法中使用一些默认值对其进行初始化。

然后,当用户单击菜单项时,将所需的值(5、10 或 15)设置为 value 变量。例如,在您的 switch 语句中

case R.id.five:
    value = 5;
    break;

case R.id.ten:
    value = 10;
    break;
....

然后,您可以在方法中使用 value 变量。

【讨论】:

  • 我尝试按照您的建议进行操作,但是在选择 incase 10 之后,我该如何再次调用我的用户定义方法??
  • 选择菜单项后要调用它吗?
  • 最初,当活动开始时,数据被绑定为距离 5 公里,然后当用户选择 10 或 15 或再次 5 公里时,数据按此绑定。
  • 你不能从你的 switch-case 语句中调用方法吗?
  • 不,我不能,因为它使用参数纬度和经度。
【解决方案2】:

选择时将所选菜单作为参数传递给 getdatalatlog,如下所示 getdatalatlog(双纬,双经,int R.id.five)

case R.id.five:
    getdatalatlog(double latitude, double longitude, int R.id.five);
    break;

声明全局变量 selectedMenu 并在选择时将值(例如 R.id.five)分配给该变量并在您的方法中使用它。

case R.id.five:
        selectedMenu = R.id.five;
        break;

然后您可以检查 if(selectedMenu == R.id.five) 之类的值

【讨论】:

  • 我无法在 switch case 中使用我的方法。
  • 如果您将值分配给 selectedMenu 并在方法 getdatalatlog 中获取它会怎样。
猜你喜欢
  • 2023-02-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-23
相关资源
最近更新 更多