2013-01-13 54 views
2

如何将selectedPlayer设置为来自其他课程的位置值?如何从Java中的其他类中获取变量?

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

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

    } 
} 
+0

其他班级的职位价值是多少? – Zyerah

+0

GetView在ScoreListAdapter获得传递int位置,我希望该值发送到ScoreList中的selectedPlayer变量 – GrilledCheese

回答

5

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

     } 
    } 
+0

感谢您的回应。我使用你的代码,将第二部分改为“ScoreList.selectedPlayer = position;”它给了我一个我早先得到的错误:“不能引用在一个不同的方法中定义的内部类中的非最终变量位置” – GrilledCheese

+0

使位置最终像,... getView(final int position,View .. – abhi

+0

谢谢,这现在完美了! – GrilledCheese

0

选项...

  1. ScoreList作为参数的构造函数ScoreListAdapter并将它设置为一个实例变量,你可以参考ScoreListAdapter.getView

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

相关问题