안녕하세요. 안드로이드스튜디오를 공부하고 있는 학생입니다.
현재 웹에서 데이터베이스를 가져와서 리스트뷰에 값을 넣어주고 있습니다.
리스트뷰안에 현재 텍스트뷰가 3개가 들어가 있는데
만약 데이터베이스에서 Button3에 들어가는 값이 null 이면 Button3를 숨기게 하고, null이 아니라면 보이게 하고싶습니다.
여러 코드를 찾아보았지만 잘 해결되지 않고 있습니다.
이런식으로 코드를 찾아보았는데도 제대로 실행이 되지 않습니다.
if (contacts_number3.getContext().equals("")) {
contacts_number3.setVisibility(View.INVISIBLE);
}
아래는 전체 코드입니다.
public class User_contacts extends AppCompatActivity {
private ProgressDialog pDialog;
private ListView contacts_listview;
private Button contacts_number1;
private static String url = "http://ㅇㅇㅇㅇㅇ.php";
ArrayList<HashMap<String, String>> contactList;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.user_contacts_info);
contactList = new ArrayList<>();
contacts_listview = (ListView) findViewById(R.id.contacts_listview);
new GetContacts().execute();
}
private class GetContacts extends AsyncTask<Void, Void, Void> {
@Override
protected void onPreExecute() {
super.onPreExecute();
// Showing progress dialog
pDialog = new ProgressDialog(User_contacts.this);
pDialog.setMessage("잠시만 기다려주세요...");
pDialog.setCancelable(false);
pDialog.show();
}
@Override
protected Void doInBackground(Void... arg0) {
bt1_HttpHandler sh = new bt1_HttpHandler();
// Making a request to url and getting response
String jsonStr = sh.makeServiceCall(url);
Log.e(TAG, "Response from url: " + jsonStr);
if (jsonStr != null) {
try {
JSONObject jsonObj = new JSONObject(jsonStr);
// Getting JSON Array node
JSONArray contacts = jsonObj.getJSONArray("result");
// looping through All Contacts
for (int i = 0; i < contacts.length(); i++) {
JSONObject c = contacts.getJSONObject(i);
//String Business = c.getString("Business");
// String Team = c.getString("Team");
// String Class = c.getString("Class");
String Name = c.getString("Name");
String Title = c.getString("Title");
String Position = c.getString("Position");
String Number1 = c.getString("Number1");
String Number2 = c.getString("Number2");
String Number3 = c.getString("Number3");
// tmp hash map for single contact
HashMap<String, String> contact = new HashMap<>();
// adding each child node to HashMap key => value
contact.put("Name", Name );
contact.put("Title", Title);
contact.put("Position", Position);
contact.put("Number1", Number1);
contact.put("Number2", Number2);
contact.put("Number3", Number3);
contactList.add(contact);
}
} catch (final JSONException e) {
Log.e(TAG, "Json parsing error: " + e.getMessage());
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(getApplicationContext(),
"Json parsing error: " + e.getMessage(),
Toast.LENGTH_LONG)
.show();
}
});
}
}
return null;
}
@Override
protected void onPostExecute(Void result) {
super.onPostExecute(result);
// Dismiss the progress dialog
if (pDialog.isShowing())
pDialog.dismiss();
/**
* Updating parsed JSON data into ListView
* */
ListAdapter adapter = new SimpleAdapter(
User_contacts.this, contactList,
R.layout.user_contacts_list_item, new String[]{"Name", "Title", "Position", "Number1", "Number2", "Number3"
}, new int[]{R.id.contacts_name, R.id.contacts_title, R.id.contacts_position, R.id.contacts_number1, R.id.contacts_number2, contacts_number3
});
Button contacts_number3 = (Button) findViewById(R.id.contacts_number3);
contacts_listview.setAdapter(adapter);
}
}
}