Java 如何在OnClickListener中调用方法,而方法中的变量(Fajr)在调用时变为null
在我的听众中:Java 如何在OnClickListener中调用方法,而方法中的变量(Fajr)在调用时变为null,java,android,Java,Android,在我的听众中: private Button mPrayerTime; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mPrayerTime = (Button)findViewById(R.id.muteButton); mPray
private Button mPrayerTime;
@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) {
cityModel cityObj= new cityModel();
String fajr=cityObj.getFajr();
Log.d("Fajr", ""+fajr);
}
});
}
我调用一个名为cityModel的方法,可以在这里找到
public final class cityModel implements Serializable {
private String fajr;
public void setFajr(String fajr) {
this.fajr= fajr;
}
public String getFajr() {
return fajr;
}
}
它从以下位置检索set.Fajr:
protected void outputTimings(JSONArray jsonArray) {
String[] prayers = {"fajr", "shurooq", "dhuhr", "asr", "maghrib", "isha"};
final 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"));
}
受保护的无效输出(JSONArray JSONArray){
字符串[]祈祷={“法伊尔”、“舒鲁克”、“杜赫”、“阿斯尔”、“马格里布”、“伊莎”};
最终城市模型城市北京;
试一试{
cityObj=新城市模型();
for(int i=0;i
当我尝试调试时,我发现cityModel找到fajr的值并将其存储得很好,因此问题似乎在于如何调用该方法,因为每当我在logcat中查找标签fajr时,它都显示为null。请避免使用“变量”这一措辞因为这会使您的问题更难理解。相反,请写下特定变量的名称,该变量为null。这个问题需要大量的重读才能弄清楚您在问什么。您正在创建一个对象的新实例,并使用getter方法传递一个字符串。@Elliott编辑了它。@sarthakGandhi正是如此。所以我在不创建新实例的情况下调用该方法吗?使用成员变量