Java 在onClick中调用公共类

Java 在onClick中调用公共类,java,android,Java,Android,我有一个onClick事件: @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mPrayerTime = (Button)findViewById(R.id.muteButton); mPrayerTime.setOnClickLi

我有一个onClick事件:

   @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    mPrayerTime = (Button)findViewById(R.id.muteButton);
    mPrayerTime.setOnClickListener(new  View.OnClickListener() {

        @Override
        public void onClick(View v) {
            //call CityModelHere
        }
    });
我想调用这个类(特别是获取fajr变量,而不会像在onClick中实例化一个新的cityModel那样返回null):

该类从后面的类中获取字符串,以防万一:

        protected void outputTimings(JSONArray jsonArray) {
        String[] prayers = {"fajr", "shurooq", "dhuhr", "asr", "maghrib", "isha"};
        cityModel cityObj;
        try {
            cityObj= new cityModel();
            for (int i = 0; i < jsonArray.length(); i++) {
                JSONObject cityObject =
                        jsonArray.getJSONObject(i);
                result = result + "fajr" + " : "
                        + cityObject.getString("fajr") + "\n" + result + "shurooq" + " : "
                        + cityObject.getString("shurooq") + "\n" + result + "dhuhr" + " : "
                        + cityObject.getString("dhuhr") + "\n" + result + "asr" + " : "
                        + cityObject.getString("asr") + "\n" + result + "maghrib" + " : "
                        + cityObject.getString("maghrib") + "\n" + result + "isha" + " : "
                        + cityObject.getString("isha") + "\n";

                cityObj.setFajr(""+cityObject.getString("fajr"));


            }

        } catch (JSONException e1) {
            e1.printStackTrace();
        }

    }
受保护的无效输出(JSONArray JSONArray){
字符串[]祈祷={“法伊尔”、“舒鲁克”、“杜赫”、“阿斯尔”、“马格里布”、“伊莎”};
城市模型城市北京;
试一试{
cityObj=新城市模型();
for(int i=0;i
将变量设为final,然后可以从setOnClickListener访问它。

变量?你的意思是将课程设置为最终课程吗?你的cityModel cityObj应该是最终添加到cityModel cityObj前面的最终课程;但它仍然返回空值。你能帮我修复这个吗?@Fencer300我想我们在这里遗漏了一些东西-cityObj是什么时候创建的?您的onClick没有它(只有注释),因此很难看到它是否被正确创建。请更新术语的整个流程,不要调用类,而是调用方法。
        protected void outputTimings(JSONArray jsonArray) {
        String[] prayers = {"fajr", "shurooq", "dhuhr", "asr", "maghrib", "isha"};
        cityModel cityObj;
        try {
            cityObj= new cityModel();
            for (int i = 0; i < jsonArray.length(); i++) {
                JSONObject cityObject =
                        jsonArray.getJSONObject(i);
                result = result + "fajr" + " : "
                        + cityObject.getString("fajr") + "\n" + result + "shurooq" + " : "
                        + cityObject.getString("shurooq") + "\n" + result + "dhuhr" + " : "
                        + cityObject.getString("dhuhr") + "\n" + result + "asr" + " : "
                        + cityObject.getString("asr") + "\n" + result + "maghrib" + " : "
                        + cityObject.getString("maghrib") + "\n" + result + "isha" + " : "
                        + cityObject.getString("isha") + "\n";

                cityObj.setFajr(""+cityObject.getString("fajr"));


            }

        } catch (JSONException e1) {
            e1.printStackTrace();
        }

    }