Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/222.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从Java中的另一个类获取变量?_Java_Android_Class_Variables - Fatal编程技术网

如何从Java中的另一个类获取变量?

如何从Java中的另一个类获取变量?,java,android,class,variables,Java,Android,Class,Variables,如何将selectedPlayer设置为其他类的position值 我在这里读过很多类似的问题,但我一直与我的变量和函数冲突 ScoreList.java public class ScoreList extends Activity { Integer selectedPlayer = 0; } ScoreListAdapter.java public class ScoreListAdapter extends ArrayAdapter<Score> { @

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

我在这里读过很多类似的问题,但我一直与我的变量和函数冲突

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
              }
        };

    }
}
    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
                  }
            };

        }
    }
公共类ScoreListAdapter扩展了ArrayAdapter{
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
最终OnClickListener lsScoreView=新OnClickListener(){
@凌驾
公共void onClick(视图v){
//将位置发送到这里的主类
}
};
}
}

将selectedPlayer设置为静态:

public class ScoreList extends Activity {

  static Integer selectedPlayer = 0;
}
这样,您可以使用类名引用SelecterLayer,因为它不属于该类的任何对象

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
              }
        };

    }
}
    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
                  }
            };

        }
    }
公共类ScoreListAdapter扩展了ArrayAdapter{
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
最终OnClickListener lsScoreView=新OnClickListener(){
@凌驾
公共void onClick(视图v){
ScoreList.selectedPlayer;//您可以在此处使用selectedPlayer
}
};
}
}
选项

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

  • ScoreList
    in作为参数传递给
    getView
    方法


  • 来自哪个其他类的位置值?ScoreListAdapter中的getView传递int position,我希望该值发送到ScoreList中的selectedPlayer变量感谢您的响应。我使用了您的代码,将第二部分更改为“ScoreList.selectedPlayer=position;”,它给了我一个我之前遇到的错误:“无法引用在不同方法中定义的内部类中的非最终变量位置”使position final,比如,…getView(final int position,View.。谢谢,这现在非常有效!