Andi Syarif
- Forum posts: 1
Jan 23, 2017, 5:34:26 AM via Website
Jan 23, 2017 5:34:26 AM via Website
hello all
any body can help me to convert my activity to fragment because i want to use navigation drawer parsing data from mysql to list view
this is my code
package com.andicom.andi;
import android.app.AlertDialog;
import android.app.Fragment;
import android.app.FragmentManager;
import android.app.FragmentTransaction;
import android.content.DialogInterface;
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.v4.widget.SwipeRefreshLayout;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.RelativeLayout;
import android.widget.Toast;
import com.andicom.andi.adapter.AdapterAdmin;
import com.android.volley.Request;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.VolleyLog;
import com.android.volley.toolbox.JsonArrayRequest;
import com.android.volley.toolbox.StringRequest;
import com.andicom.andi.app.AppControllerAdmin;
import com.andicom.andi.data.DataAdmin;
import com.andicom.andi.util.ServerAdmin;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class MainActivityAdmin extends AppCompatActivity implements SwipeRefreshLayout.OnRefreshListener {
Toolbar toolbar;
FloatingActionButton fab;
ListView list;
SwipeRefreshLayout swipe;
List<DataAdmin> itemList = new ArrayList<DataAdmin>();
AdapterAdmin adapterAdmin;
int success;
AlertDialog.Builder dialog;
LayoutInflater inflater;
View dialogView;
EditText txt_id, txt_namapengguna, txt_pass, txt_email;
String id, namapengguna, pass, email;
private static final String TAG = MainActivityAdmin.class.getSimpleName();
private static String url_select = ServerAdmin.URL + "select.php";
private static String url_insert = ServerAdmin.URL + "insert.php";
private static String url_edit = ServerAdmin.URL + "edit.php";
private static String url_update = ServerAdmin.URL + "update.php";
private static String url_delete = ServerAdmin.URL + "delete.php";
public static final String TAG_ID = "id";
public static final String TAG_NAMAPENGGUNA = "namapengguna";
public static final String TAG_PASS = "pass";
public static final String TAG_EMAIL = "email";
private static final String TAG_SUCCESS = "success";
private static final String TAG_MESSAGE = "message";
String tag_json_obj = "json_obj_req";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_mainadmin);
toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
// menghubungkan variablel pada layout dan pada java
fab = (FloatingActionButton) findViewById(R.id.fab_add);
swipe = (SwipeRefreshLayout) findViewById(R.id.swipe_refresh_layout);
list = (ListView) findViewById(R.id.list);
// untuk mengisi data dari JSON ke dalam adapterAdmin
adapterAdmin = new AdapterAdmin(MainActivityAdmin.this, itemList);
list.setAdapter(adapterAdmin);
// menamilkan widget refresh
swipe.setOnRefreshListener(this);
swipe.post(new Runnable() {
@Override
public void run() {
swipe.setRefreshing(true);
itemList.clear();
adapterAdmin.notifyDataSetChanged();
callVolley();
}
}
);
// fungsi floating action button memanggil form kontak
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
DialogForm("", "", "","", "SIMPAN");
}
});
// listview ditekan lama akan menampilkan dua pilihan edit atau delete data
list.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(final AdapterView<?> parent, View view,
final int position, long id) {
// TODO Auto-generated method stub
final String idx = itemList.get(position).getId();
final CharSequence[] dialogitem = {"Edit", "Delete"};
dialog = new AlertDialog.Builder(MainActivityAdmin.this);
dialog.setCancelable(true);
dialog.setItems(dialogitem, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
switch (which) {
case 0:
edit(idx);
break;
case 1:
delete(idx);
break;
}
}
}).show();
return false;
}
});
}
@Override
public void onRefresh() {
itemList.clear();
adapterAdmin.notifyDataSetChanged();
callVolley();
}
// untuk mengosongi edittext pada form
private void kosong(){
txt_id.setText(null);
txt_namapengguna.setText(null);
txt_pass.setText(null);
txt_email.setText(null);
}
// untuk menampilkan dialog from kontak
private void DialogForm(String idx, String namax, String passx, String emailx, String button) {
dialog = new AlertDialog.Builder(MainActivityAdmin.this);
inflater = getLayoutInflater();
dialogView = inflater.inflate(R.layout.form_admin, null);
dialog.setView(dialogView);
dialog.setCancelable(true);
dialog.setIcon(R.mipmap.ic_launcher);
dialog.setTitle("Form Biodata");
txt_id = (EditText) dialogView.findViewById(R.id.txt_id);
txt_namapengguna = (EditText) dialogView.findViewById(R.id.txt_namapengguna);
txt_pass = (EditText) dialogView.findViewById(R.id.txt_pass);
txt_email = (EditText) dialogView.findViewById(R.id.txt_email);
if (!idx.isEmpty()){
txt_id.setText(idx);
txt_namapengguna.setText(namax);
txt_pass.setText(passx);
txt_email.setText(emailx);
} else {
kosong();
}
dialog.setPositiveButton(button, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
id = txt_id.getText().toString();
namapengguna = txt_namapengguna.getText().toString();
pass = txt_pass.getText().toString();
email = txt_email.getText().toString();
simpan_update();
dialog.dismiss();
}
});
dialog.setNegativeButton("BATAL", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
kosong();
}
});
dialog.show();
}
// untuk menampilkan semua data pada listview
private void callVolley(){
itemList.clear();
adapterAdmin.notifyDataSetChanged();
swipe.setRefreshing(true);
// membuat request JSON
JsonArrayRequest jArr = new JsonArrayRequest(url_select, new Response.Listener<JSONArray>() {
@Override
public void onResponse(JSONArray response) {
Log.d(TAG, response.toString());
// Parsing json
for (int i = 0; i < response.length(); i++) {
try {
JSONObject obj = response.getJSONObject(i);
DataAdmin item = new DataAdmin();
item.setId(obj.getString(TAG_ID));
item.setNama(obj.getString(TAG_NAMAPENGGUNA));
item.setPass(obj.getString(TAG_PASS));
item.setEmail(obj.getString(TAG_EMAIL));
// menambah item ke array
itemList.add(item);
} catch (JSONException e) {
e.printStackTrace();
}
}
// notifikasi adanya perubahan data pada adapterAdmin
adapterAdmin.notifyDataSetChanged();
swipe.setRefreshing(false);
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
VolleyLog.d(TAG, "Error: " + error.getMessage());
swipe.setRefreshing(false);
}
});
// menambah request ke request queue
AppControllerAdmin.getInstance().addToRequestQueue(jArr);
}
// fungsi untuk menyimpan atau update
private void simpan_update() {
String url;
// jika id kosong maka simpan, jika id ada nilainya maka update
if (id.isEmpty()){
url = url_insert;
} else {
url = url_update;
}
StringRequest strReq = new StringRequest(Request.Method.POST, url, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Log.d(TAG, "Response: " + response.toString());
try {
JSONObject jObj = new JSONObject(response);
success = jObj.getInt(TAG_SUCCESS);
// Cek error node pada json
if (success == 1) {
Log.d("Add/update", jObj.toString());
callVolley();
kosong();
Toast.makeText(MainActivityAdmin.this, jObj.getString(TAG_MESSAGE), Toast.LENGTH_LONG).show();
adapterAdmin.notifyDataSetChanged();
} else {
Toast.makeText(MainActivityAdmin.this, jObj.getString(TAG_MESSAGE), Toast.LENGTH_LONG).show();
}
} catch (JSONException e) {
// JSON error
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.e(TAG, "Error: " + error.getMessage());
Toast.makeText(MainActivityAdmin.this, error.getMessage(), Toast.LENGTH_LONG).show();
}
}) {
@Override
protected Map<String, String> getParams() {
// Posting parameters ke post url
Map<String, String> params = new HashMap<String, String>();
// jika id kosong maka simpan, jika id ada nilainya maka update
if (id.isEmpty()){
params.put("namapengguna", namapengguna);
params.put("pass", pass);
params.put("email", email);
} else {
params.put("id", id);
params.put("namapengguna", namapengguna);
params.put("pass", pass);
params.put("email", email);
}
return params;
}
};
AppControllerAdmin.getInstance().addToRequestQueue(strReq, tag_json_obj);
}
// fungsi untuk get edit data
private void edit(final String idx){
StringRequest strReq = new StringRequest(Request.Method.POST, url_edit, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Log.d(TAG, "Response: " + response.toString());
try {
JSONObject jObj = new JSONObject(response);
success = jObj.getInt(TAG_SUCCESS);
// Cek error node pada json
if (success == 1) {
Log.d("get edit data", jObj.toString());
String idx = jObj.getString(TAG_ID);
String namapenggunax = jObj.getString(TAG_NAMAPENGGUNA);
String passx = jObj.getString(TAG_PASS);
String emailx = jObj.getString(TAG_EMAIL);
DialogForm(idx, namapenggunax, passx, emailx, "UPDATE");
adapterAdmin.notifyDataSetChanged();
} else {
Toast.makeText(MainActivityAdmin.this, jObj.getString(TAG_MESSAGE), Toast.LENGTH_LONG).show();
}
} catch (JSONException e) {
// JSON error
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.e(TAG, "Error: " + error.getMessage());
Toast.makeText(MainActivityAdmin.this, error.getMessage(), Toast.LENGTH_LONG).show();
}
}) {
@Override
protected Map<String, String> getParams() {
// Posting parameters ke post url
Map<String, String> params = new HashMap<String, String>();
params.put("id", idx);
return params;
}
};
AppControllerAdmin.getInstance().addToRequestQueue(strReq, tag_json_obj);
}
// fungsi untuk menghapus
private void delete(final String idx){
StringRequest strReq = new StringRequest(Request.Method.POST, url_delete, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Log.d(TAG, "Response: " + response.toString());
try {
JSONObject jObj = new JSONObject(response);
success = jObj.getInt(TAG_SUCCESS);
// Cek error node pada json
if (success == 1) {
Log.d("delete", jObj.toString());
callVolley();
Toast.makeText(MainActivityAdmin.this, jObj.getString(TAG_MESSAGE), Toast.LENGTH_LONG).show();
adapterAdmin.notifyDataSetChanged();
} else {
Toast.makeText(MainActivityAdmin.this, jObj.getString(TAG_MESSAGE), Toast.LENGTH_LONG).show();
}
} catch (JSONException e) {
// JSON error
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.e(TAG, "Error: " + error.getMessage());
Toast.makeText(MainActivityAdmin.this, error.getMessage(), Toast.LENGTH_LONG).show();
}
}) {
@Override
protected Map<String, String> getParams() {
// Posting parameters ke post url
Map<String, String> params = new HashMap<String, String>();
params.put("id", idx);
return params;
}
};
AppControllerAdmin.getInstance().addToRequestQueue(strReq, tag_json_obj);
}
}
Regard's
Recommended editorial content
With your consent, external content is loaded here.
By clicking on the button above, you agree that external content may be displayed to you. Personal data may be transmitted to third-party providers in the process. You can find more information about this in our Privacy Policy.