【问题标题】:making onItemSelected visible to entire class使 onItemSelected 对整个班级可见
【发布时间】:2014-02-24 21:59:17
【问题描述】:

我是这个 android/java 的新手。我有这个 onItemSelected ,它将烤在微调器中选择的内容。我想让字符串 resumeTableName 在我的整个类中都可以访问,该类具有所选微调器对象的值。现在它会烘烤选定的值,但是在我班的其他地方,resumeTableName 仍然为空。我认为 public 修饰符会使它可见。我如何使它可见,我是否使用某种返回?

@Override
public void onItemSelected(AdapterView<?> parent, View view, int position,
        long id) {
    // On selecting a spinner item

  String resumeTableName = parent.getItemAtPosition(position).toString();



 // Showing selected spinner item
    Toast.makeText(parent.getContext(),  resumeTableName,
            Toast.LENGTH_LONG).show();


}

【问题讨论】:

    标签: java android


    【解决方案1】:

    使用在您的班级中声明的static String resumeTableName; 和 在你的onItemSelected

        @Override
    public void onItemSelected(AdapterView<?> parent, View view, int position,
            long id) {
        // On selecting a spinner item
    
      resumeTableName = parent.getItemAtPosition(position).toString();
    
    
    
     // Showing selected spinner item
        Toast.makeText(parent.getContext(),  resumeTableName,
                Toast.LENGTH_LONG).show();
    
    
    }
    

    这样,该方法更新的resumeTableName的值对整个类都是一样的。

    【讨论】:

    • 这行得通。非常感谢。我会尽快投票!
    【解决方案2】:

    如果您是 Android 编程新手,那么有一个很好的解决方案可以解决变量可见性问题。

    你必须在你的包中创建类:

    public class GlobalVar extends Application{
    
    private  int dummy1;
    
    public int getDummy1() {
        return dummy1;
    }
    public void setDummy1(int dummy1) {
        this.dummy1 = dummy1;
    }
    }
    

    然后在您的应用程序的任何地方您都可以使用以下方法获取/设置此数据:

    GlobalVar gV = (GlobalVar)GetApplicationContext();
    

    然后您只需使用 Getters/Setters 或此类中的任何公共方法来修改它们。我认为对于您经常从不同的代码位置使用的一组变量来说,这是一个非常好的解决方案。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-28
      • 1970-01-01
      • 2015-08-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多