This is the view when i click switch rent then async task will run and im getting result an dthe recycle view not updating and it shows image button and recycle view null pointer exception here is my code Image here
public void rent_buy_selection(String type,String propertyID,String placeId,String buildingName,String bedRooms)
{
Property_listing1 listing1 = new Property_listing1(type,propertyID,placeId,buildingName,bedRooms);
listing1.execute();
}
public class Property_listing1 extends AsyncTask<Void, Void, Boolean> {
String PropertyID;
String placeId;
String property_type;
String BuildingName;
String BedRooms;
String image1,SenderId;
JSONArray detail;
JSONParser ob = new JSONParser();
JSONArray jArray;
Property_listing1(String type,String propertyID,String PlaceId,String buildingName,String bedRooms) {
Log.e("listFragment",":"+type);
PropertyID = propertyID;
placeId = PlaceId;
BuildingName = buildingName;
BedRooms = bedRooms;
property_type= type;
/* if(getActivity().getIntent().hasExtra("PropertyID")) {
PropertyID = getActivity().getIntent().getExtras().getString("PropertyID");
}
if(getActivity().getIntent().hasExtra("PropertyID")) {
placeId = getActivity().getIntent().getExtras().getString("placeId");
}
property_type = type;//getActivity().getIntent().getExtras().getString("property_type");
if(getActivity().getIntent().hasExtra("PropertyID")) {
BuildingName = getActivity().getIntent().getExtras().getString("BuildingName");
}
if(getActivity().getIntent().hasExtra("PropertyID")) {
BedRooms = getActivity().getIntent().getExtras().getString("BedRooms");
}
if(getActivity().getIntent().hasExtra("PropertyID")) {
SenderId = getActivity().getIntent().getExtras().getString("SenderId");
}*/
}
List<DataProperty> data=new ArrayList<>();
@Override
protected Boolean doInBackground(Void... params) {
try {
// Building Parameters
List<NameValuePair> paramss = new ArrayList<NameValuePair>();
paramss.add(new BasicNameValuePair("more_list", "1"));
paramss.add(new BasicNameValuePair("PropertyID", PropertyID));
paramss.add(new BasicNameValuePair("property_type", property_type));
paramss.add(new BasicNameValuePair("BuildingName", BuildingName));
paramss.add(new BasicNameValuePair("BedRooms", BedRooms));
paramss.add(new BasicNameValuePair("placeId", placeId));
try {
/* if (getActivity().getIntent().hasExtra("shared")) {
paramss.add(new BasicNameValuePair("shared", "1"));
paramss.add(new BasicNameValuePair("SenderId", SenderId));
}*/
}
catch (Exception e)
{
e.printStackTrace();
}
// getting JSON Object
// Note that create product url accepts POST method
JSONObject json = ob.makeHttpRequest("http://208.77.22.13/proprek_android/property_listing.php", "POST", paramss);
Log.d("Parameters",":"+paramss);
// check logcat for response
Log.d("Create Response", json.toString());
// check for success tag
try {
String success = json.getString("status");
Log.d("test123",":"+success);
if (success.equals("true")) {
jArray = json.getJSONArray("result");
// Extract data from json and store into ArrayList as class objects
for(int i=0;i<jArray.length();i++){
JSONObject json_data = jArray.getJSONObject(i);
DataProperty fishData = new DataProperty();
fishData.Title = json_data.getString("title");
fishData.Id = json_data.getString("id");
fishData.agentId = json_data.getString("agent_id");
fishData.prprtyId = json_data.getString("property_id");
fishData.Price = json_data.getString("price");
fishData.Area = json_data.getString("area");
fishData.agent_name = json_data.getString("first_name");
fishData.agent_pic = json_data.getString("fb_img");
fishData.Bedrooms = json_data.getString("bedrooms");
fishData.Bathrooms = json_data.getString("bathrooms");
fishData.Image = json_data.getString("agent_logo");
fishData.Phone = json_data.getString("phone");
fishData.property_Img = json_data.getString("image1");
fishData.agent_logo = json_data.getString("agent_logo");
fishData.company_name = json_data.getString("company_name");
fishData.shared = "0";
fishData.description = "0";
// data.add(fishData);
}
catch (Exception e)
{
e.printStackTrace();
}
Log.e("agent_name",":"+fishData.agent_name);
data.add(fishData);
}
} else {
// failed to create product
// flag = true;
throw new InterruptedException("test");
}
// Simulate network access.
//Thread.sleep(2000);
} catch (InterruptedException e) {
return false;
}
} catch (JSONException e) {
e.printStackTrace();
}
return true;
}
@Override
protected void onPostExecute(final Boolean success) {
String Title="";
try {
mAdapter = new PropertyAdapter(getActivity(), data);
mRVFishPrice.setAdapter(mAdapter);
mAdapter.notifyDataSetChanged();
mRVFishPrice.setLayoutManager(new LinearLayoutManager(getActivity()));
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
When click the rent
public PropertyAdapter(Context context, List<DataProperty> data){
Log.e("shared",":test");
SharedPreferences sharedPreferences = context.getSharedPreferences("reg_id",Context.MODE_PRIVATE);
user_id = sharedPreferences.getString("id","");
this.context=context;
// inflater= (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
this.data=data;
PropertyID = ((Activity) context).getIntent().getExtras().getString("PropertyID");
placeId = ((Activity) context).getIntent().getExtras().getString("placeId");
property_type = ((Activity) context).getIntent().getExtras().getString("property_type");
BuildingName = ((Activity) context).getIntent().getExtras().getString("BuildingName");
BedRooms = ((Activity) context).getIntent().getExtras().getString("BedRooms");
SenderId = ((Activity) context).getIntent().getExtras().getString("SenderId");
}
How to fix this issue?
error Log 06-09 21:30:06.719 9677-9677/com.ksoft.propreka W/System.err: java.lang.NullPointerException 06-09 21:30:06.719 9677-9677/com.ksoft.propreka W/System.err: at android.content.ContextWrapper.getSharedPreferences(ContextWrapper.java:161) 06-09 21:30:06.719 9677-9677/com.ksoft.propreka W/System.err: at com.ksoft.propreka.Adapter.PropertyAdapter.(PropertyAdapter.java:82) 06-09 21:30:06.719 9677-9677/com.ksoft.propreka W/System.err: at com.ksoft.propreka.Fragment.Property_list$Property_listing1.onPostExecute(Property_list.java:562) 06-09 21:30:06.719 9677-9677/com.ksoft.propreka W/System.err: at com.ksoft.propreka.Fragment.Property_list$Property_listing1.onPostExecute(Property_list.java:300) 06-09 21:30:06.719 9677-9677/com.ksoft.propreka W/System.err: at android.os.AsyncTask.finish(AsyncTask.java:631) 06-09 21:30:06.719 9677-9677/com.ksoft.propreka W/System.err: at android.os.AsyncTask.access$600(AsyncTask.java:177) 06-09 21:30:06.719 9677-9677/com.ksoft.propreka W/System.err: at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:644) 06-09 21:30:06.719 9677-9677/com.ksoft.propreka W/System.err: at android.os.Handler.dispatchMessage(Handler.java:99) 06-09 21:30:06.719 9677-9677/com.ksoft.propreka W/System.err: at android.os.Looper.loop(Looper.java:137) 06-09 21:30:06.719 9677-9677/com.ksoft.propreka W/System.err: at android.app.ActivityThread.main(ActivityThread.java:5041) 06-09 21:30:06.719 9677-9677/com.ksoft.propreka W/System.err: at java.lang.reflect.Method.invokeNative(Native Method) 06-09 21:30:06.719 9677-9677/com.ksoft.propreka W/System.err: at java.lang.reflect.Method.invoke(Method.java:511) 06-09 21:30:06.719 9677-9677/com.ksoft.propreka W/System.err: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) 06-09 21:30:06.719 9677-9677/com.ksoft.propreka W/System.err: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560) 06-09 21:30:06.719 9677-9677/com.ksoft.propreka W/System.err: at dalvik.system.NativeStart.main(Native Method)
答案 0 :(得分:0)
are you put id preference in shared preference like below before call adapter
SharedPreferences sharedPref = getActivity().getSharedPreferences("reg_id",Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPref.edit();
editor.putString("id","1323");
editor.commit();
答案 1 :(得分:0)
使用时:
SharedPreferences sharedPreferences = context.getSharedPreferences("reg_id",Context.MODE_PRIVATE);
Android验证此sharedPreference是否与此&#34; id&#34;已经存在,如果没有它创建一个,如果它然后得到它的值。
在从SharedPreferences获取值之前,您需要使用Editor
将信息放在其上,如下面的示例所示:
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString("reg_id", fieldText.getText().toString());
editor.apply();
我相信这是你所缺少的,你创建了一个SharedPref,但你并没有把它放在它上面。
记住SharedPref只能存储原始值。