2017-07-04 21 views
0

我有一个bean类,它成功地检索从另一个类的字符串值。=(它打印出它就好了bean类内)在Bean类调用字符串返回NULL

当我尝试并调用该类/串它返回为null。

下面是相关代码:

public class cityModel implements Serializable { 
    private String fajr; 

    public void setFajr(String fajr) { 
     this.fajr= fajr; 

    } 
    public String getFajr() { 

     return fajr; 
    } 
} 
public void mutePrayerTime(View view) { 
    cityModel cityObj= new cityModel(); 
    String fajr=cityObj.getFajr(); 
    Log.d("LOGCAT", "" + cityObj.getFajr()); 

    //StringBuilder newFajr = new StringBuilder(fajr); 
    //newFajr.delete(2,5); 
    //Log.d("newFajr", String.valueOf(newFajr)); 
    // Intent alarm = new Intent(AlarmClock.ACTION_SET_ALARM); 

    //alarm.putExtra(AlarmClock.EXTRA_HOUR, fajr); 

} 

的Log.d标签logcat的返回为空

编辑:

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")); 


      } 
+0

看起来不像上面的代码,甚至会编译。 'fajr'是一个String,你试图调用它,就好像它是'fajr()'的方法一样。你是否也有一个同名的方法?发布其代码。 – Strelok

+0

它编译并运行。我将代码添加到主文章 – Fencer300

+0

发布定义了'mutePrayerTime'方法的类的完整代码。 – Strelok

回答

1

:该bean类从检索串 代码看看这个方法:

public void mutePrayerTime(View view) { 
    cityModel cityObj= new cityModel(); 
    String fajr=cityObj.getFajr(); 
    Log.d("LOGCAT", "" + cityObj.getFajr()); 

    //StringBuilder newFajr = new StringBuilder(fajr); 
    //newFajr.delete(2,5); 
    //Log.d("newFajr", String.valueOf(newFajr)); 
    // Intent alarm = new Intent(AlarmClock.ACTION_SET_ALARM); 

    //alarm.putExtra(AlarmClock.EXTRA_HOUR, fajr); 

} 

您刚刚创建了cityObj,就像这个cityModel cityObj= new cityModel();那时它的所有属性都是null这就是为什么你在日志中看到null的原因。你应该从你outputTimings方法传递cityObjmutePrayerTime方法:

public void mutePrayerTime(View view,cityModel cityObj) { 
    Log.d("LOGCAT", "" + cityObj.getFajr()); 

    //StringBuilder newFajr = new StringBuilder(fajr); 
    //newFajr.delete(2,5); 
    //Log.d("newFajr", String.valueOf(newFajr)); 
    // Intent alarm = new Intent(AlarmClock.ACTION_SET_ALARM); 

    //alarm.putExtra(AlarmClock.EXTRA_HOUR, fajr); 

} 

,然后在outputTimings

cityObj.setFajr(""+cityObject.getString("fajr")); 
someObj.mutePrayerTime(view, cityObj); 
+0

啊!更有意义。谢谢! – Fencer300

+0

只是所以我可以更好地理解,whats第二个obj在outputTimings中的目的以及在哪里/如何定义? – Fencer300

+0

这就是你的'mutePrayerTimings'方法所在。 @ Fencer300 – Strelok

相关问题