I am using android studio and in my project i want to show data in listView fetched from database but this error is impossible to understand for me. i have searched so many tutorials books but i am unable to solve this please help me
here is my fragment code
public class MessagesFragment extends Fragment {
ImageView imageView1;
private ListView listMessages;
private TextView nomessages;
SessionManager session;
String JSONString,json_string;
JSONObject jsonObject;
JSONArray jsonArray;
AdapterMessages adapterMessages;
public MessagesFragment() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view=inflater.inflate(R.layout.fragment_messages2, container, false);
listMessages=(ListView) view.findViewById(R.id.listMessages);
nomessages=(TextView)view.findViewById(R.id.noMessages);
imageView1=(ImageView)view.findViewById(R.id.SenderImage);
retu view;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
SearchMessages();
}
public void SearchMessages(){
session = new SessionManager(getActivity().getApplicationContext());
HashMap<String, String> user = session.getUserDetails();
String user_id = user.get(SessionManager.KEY_ID);
new BackgroundSearch2().execute(user_id);
}
class BackgroundSearch2 extends AsyncTask<String,Void,String> {
String search_url;
@Override
protected void onPreExecute() {
search_url = "http://www.url.com/messages.php";
}
@Override
protected String doInBackground(String... params) {
String user_id = params[0];
try {
URL url = new URL(search_url);
HttpURLCoection httpURLCoection= (HttpURLCoection) url.openCoection();
httpURLCoection.setRequestMethod("POST");
httpURLCoection.setDoOutput(true);
// httpURLCoection.setDoInput(true);
OutputStream outputStream = httpURLCoection.getOutputStream();
BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(outputStream, "UTF-8"));
String data = URLEncoder.encode("user_id", "UTF-8") + "=" + URLEncoder.encode(user_id, "UTF-8");
bufferedWriter.write(data);
bufferedWriter.flush();
bufferedWriter.close();
outputStream.close();
InputStream inputStream = httpURLCoection.getInputStream();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
// String response = "";
// JSONString = "";
StringBuilder stringBuilder=new StringBuilder();
while ((JSONString = bufferedReader.readLine()) != null) {
// response += JSONString;
stringBuilder.append(JSONString+"n");
}
bufferedReader.close();
inputStream.close();
httpURLCoection.discoect();
retu stringBuilder.toString().trim();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
retu null;
}
@Override
protected void onProgressUpdate(Void... values) {
super.onProgressUpdate(values);
}
@Override
protected void onPostExecute(String result) {
if (result.equals(null))
{
nomessages.setText("No Messages");
}
else {
json_string = result;
ParseJson();
}
}
}
public void ParseJson(){
if(json_string==null)
{
Toast.makeText(getActivity(), "No Messages", Toast.LENGTH_LONG).show();
}
else {
//listMessages.setAdapter(adapterMessages);
adapterMessages = new AdapterMessages(getActivity(), R.layout.custom_messages_);
listMessages.setAdapter((ListAdapter) adapterMessages);
try {
jsonObject = new JSONObject(json_string);
jsonArray = jsonObject.getJSONArray("server_response");
int count = 0;
String sender_id, senderName, MessageDate, MessageType, image;
while (count < jsonArray.length()) {
JSONObject JO = jsonArray.getJSONObject(count);
sender_id=JO.getString("sender_id");
senderName = JO.getString("sender_name");
MessageDate = JO.getString("date");
MessageType = JO.getString("message_type");
image=("http://url.com/uploads/"+sender_id+".png");
MessagesElements messagesElements = new MessagesElements(sender_id,senderName,MessageDate,MessageType,image );
adapterMessages.add(messagesElements);
listMessages.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
MessagesElements messagesElements = (MessagesElements) adapterMessages.getItem(position);
Intent i = new Intent(getActivity(), Messages.class);
i.putExtra("user_id", messagesElements.getsender_id());
startActivity(i);
}
});
count++;
}
} catch (JSONException e) {
e.printStackTrace();
}
}
}
}
and here is my adapter code
public class AdapterMessages extends ArrayAdapter {
List list1=new ArrayList();
public AdapterMessages(Context ctx, int resource) {
super(ctx,resource);
}
@Override
public int getCount() {
retu list1.size();
}
public void add(EventsElements object) {
super.add(object);
list1.add(object);
}
@Override
public Object getItem(int position) {
retu list1.get(position);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view;
view=convertView;
ElementsHolder1 elemetsHolder;
if (view==null){
LayoutInflater layoutInflater = (LayoutInflater)this.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view = layoutInflater.inflate(R.layout.custom_messages_,parent,false);
elemetsHolder=new ElementsHolder1();
elemetsHolder.FriendName=(TextView) view.findViewById(R.id.SenderName);
elemetsHolder.MessageDate=(TextView) view.findViewById(R.id.sentDate);
elemetsHolder.MessageType=(TextView) view.findViewById(R.id.MessageType);
elemetsHolder.imageView=(ImageView)view.findViewById(R.id.SenderImage);
view.setTag(elemetsHolder);
}
else
{
elemetsHolder=(ElementsHolder1) view.getTag();
}
MessagesElements messagesElements=(MessagesElements)this.getItem(position);
elemetsHolder.FriendName.setText(messagesElements.getsenderName());
elemetsHolder.MessageDate.setText(messagesElements.getMessageDate());
elemetsHolder.MessageType.setText(messagesElements.getMessageType());
if(!isAirplaneModeOn(getContext().getApplicationContext())){
Picasso.with(getContext()).load(messagesElements.getImage()).error(R.drawable.emptyuser).into(elemetsHolder.imageView);}
retu view;
}
static class ElementsHolder1
{
TextView MessageType,MessageDate,FriendName;
ImageView imageView;
String user_id;
}
@SuppressWaings("deprecation")
@TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR1)
public static boolean isAirplaneModeOn(Context context) {
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN_MR1) {
retu Settings.System.getInt(context.getContentResolver(),
Settings.System.AIRPLANE_MODE_ON, 0) != 0;
} else {
retu Settings.Global.getInt(context.getContentResolver(),
Settings.Global.AIRPLANE_MODE_ON, 0) != 0;
}
}
}
MessagesElements.java
public class MessagesElements {
private String sender_id,senderName,MessageDate, MessageType;
public String image;
public MessagesElements(String sender_id,String senderName,String MessageDate,String MessageType,String image){
this.setsender_id(sender_id);
this.setsenderName(senderName);
this.setMessageDate(MessageDate);
this.setMessageType(MessageType);
this.image=image;
}
public String getsender_id(){
retu sender_id;
}
public void setsender_id(String sender_id) {
this.sender_id = sender_id;
}
public String getsenderName() {
retu senderName;
}
public void setsenderName(String senderName) {
this.senderName = senderName;
}
public String getMessageDate() {
retu MessageDate;
}
public void setMessageDate(String MessageDate) {
this.MessageDate = MessageDate;
}
public String getImage() {
retu image;
}
public String getMessageType(){
retu MessageType;
}
public void setMessageType(String MessageType) {
this.MessageType = MessageType;
}
}
and this is the error in my logcat..
W/Settings: Setting airplane_mode_on has moved from android.provider.Settings.System to android.provider.Settings.Global, retuing read-only value.
