【问题标题】:How do I get a variable from another class in Java? [closed]如何从 Java 中的另一个类中获取变量? [关闭]
【发布时间】:2013-01-13 22:32:15
【问题描述】:

如何将 selectedPlayer 设置为其他类的位置值?

我在这里阅读了一堆类似的问题,但我一直遇到与我的变量和函数的冲突。

ScoreList.java

public class ScoreList extends Activity {

    Integer selectedPlayer = 0;
}

ScoreListAdapter.java

public class ScoreListAdapter extends ArrayAdapter<Score> {

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {

        final OnClickListener lsScoreView = new OnClickListener() {
              @Override
                public void onClick(View v) {
                  //send position to main class here
              }
        };

    }
}

【问题讨论】:

  • 其他类的位置值是多少?
  • ScoreListAdapter 中的 getView 被传递 int 位置,我希望将该值发送到 ScoreList 中的 selectedPlayer 变量

标签: java android class variables


【解决方案1】:

将 selectedPlayer 设置为静态:

public class ScoreList extends Activity {

  static Integer selectedPlayer = 0;
}

这样,您可以使用类名引用selecterPlayer,因为它不属于该类的任何对象。

ScoreListAdapter.java

    public class ScoreListAdapter extends ArrayAdapter<Score> {

        @Override
        public View getView(int position, View convertView, ViewGroup parent) {

            final OnClickListener lsScoreView = new OnClickListener() {
                  @Override
                    public void onClick(View v) {
                       ScoreList.selectedPlayer;//You can use selectedPlayer here
                  }
            };

        }
    }

【讨论】:

  • 感谢您的回复。我使用了您的代码,将第二部分更改为“ScoreList.selectedPlayer = position;”它给了我一个我之前遇到的错误:“无法引用以不同方法定义的内部类中的非最终变量位置”
  • 使位置最终像 ...getView(final int position, View..
  • 谢谢,现在完美运行!
【解决方案2】:

选项...

  1. ScoreList 作为参数传递给ScoreListAdapter 构造函数,并将其设置为实例变量,您可以在ScoreListAdapter.getView 中引用它。

  2. ScoreList 作为参数传递给getView 方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-03-10
    • 1970-01-01
    • 2014-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多