Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/217.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 运行活动两次(而不是一次)以从getter获取值_Java_Android_Textview_Setter - Fatal编程技术网

Java 运行活动两次(而不是一次)以从getter获取值

Java 运行活动两次(而不是一次)以从getter获取值,java,android,textview,setter,Java,Android,Textview,Setter,当点击一个图像(来自上一个活动)时,我进入这个活动(在这里我传递clientid),它读取JSONArray并使用setter设置缺口 然后我使用一个getter来执行textview setText 问题是,第一次没有设置尼克。当我返回到上一个活动并再次点击相同的图像时,只会设置刻痕。 为什么尼克不是第一次出现的呢 (附言:我对Java/Android Studio很陌生) package com.smartvibes.smartbeat; 导入android.support.v7.app.A

当点击一个图像(来自上一个活动)时,我进入这个活动(在这里我传递clientid),它读取JSONArray并使用setter设置缺口

然后我使用一个getter来执行textview setText

问题是,第一次没有设置尼克。当我返回到上一个活动并再次点击相同的图像时,只会设置刻痕。 为什么尼克不是第一次出现的呢

(附言:我对Java/Android Studio很陌生)

package com.smartvibes.smartbeat;
导入android.support.v7.app.AppActivity;
导入android.os.Bundle;
导入android.widget.TextView;
导入com.android.volley.Request;
导入com.android.volley.RequestQueue;
导入com.android.volley.Response;
导入com.android.volley.VolleyError;
导入com.android.volley.toolbox.JsonObjectRequest;
导入com.android.volley.toolbox.volley;
导入org.json.JSONException;
导入org.json.JSONObject;
公共类profileViewActivity扩展了AppCompatActivity{
请求者;
字符串url、id、nick、年龄、城市、mainpic、numpics、extrapic0、extrapic1、extrapic2、extrapic3、extrapic4、extrapic5;
文本视图简介;
静态字符串pnick;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u profile\u视图);
Bundle getProfileId=getIntent().getExtras();
if(getProfileId==null){
回来
}
String profileid=getProfileId.getString(“profileid”);
url=”https://www.smartvibes.be/profiles/api/profileview.php?id=“+profileid;
rs=Volley.newRequestQueue(this);
sendjsonrequest();
profileIntro=(TextView)findViewById(R.id.profileIntro);
profileIntro.setText(getPnick());
}
public void sendjsonrequest(){
JsonObjectRequest JsonObjectRequest=新的JsonObjectRequest(Request.Method.GET,url,null,new Response.Listener()){
@凌驾
公共void onResponse(JSONObject响应){
试一试{
setPnick(response.getString(“nick”));
}捕获(JSONException e){
e、 printStackTrace();
}
}
},new Response.ErrorListener(){
@凌驾
公共无效onErrorResponse(截击错误){
}
});
rs.add(jsonObjectRequest);
}
公共静态void setPnick(字符串缺口){
pnick=nick;
}
公共静态字符串getPnick(){
返回pnick;
}
}

因为
sendjsonrequest
是一个异步调用

您需要在
onResponse
方法本身中更新textView,如下所示

setPnick(response.getString("nick"));
profileIntro.setText(getPnick());
setPnick(response.getString("nick"));
profileIntro.setText(getPnick());