Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 5

Nama : Aldi Kurniawan

NIM : A11.2021.13391

Pertemuan 9
Adapter.java
package com.example.wordlistloader;
import android.app.Activity; import
android.content.Context; import
android.view.LayoutInflater; import
android.view.View; import
android.view.ViewGroup; import
android.widget.BaseAdapter; import
android.widget.TextView;
import java.util.List;

public class Adapter extends BaseAdapter {


Activity activity; List<Data> items;
private LayoutInflater inflater;

public Adapter(Activity activity, List<Data> items) { this.activity = activity;


this.items = items;
}

@Override
public int getCount() { return items.size();
}

@Override
public Object getItem(int position) { return items.get(position);
}

@Override
public long getItemId(int position) { return position;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) { if (inflater == null)
inflater = (LayoutInflater)
activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

if (convertView == null) convertView = inflater.inflate(R.layout.list, null);

TextView name = (TextView) convertView.findViewById(R.id.name);


Data data = items.get(position);

name.setText(data.getNama());

return convertView;
}
}

Data.java
package com.example.wordlistloader;
public class Data { private String
name;
public Data() {
} public Data(String name) {
this.name = name;
}
public String getNama() { return name;
} public void setNama(String name) {
this.name = name;

}
}

MainActivity.java
package com.example.wordlistloader;

import androidx.appcompat.app.AppCompatActivity;
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout; import
android.os.Bundle; import android.util.Log; import android.widget.ListView; import
com.android.volley.RequestQueue; 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.Volley; import
com.google.android.material.floatingactionbutton.FloatingActionButton; import org.json.JSONArray;
import org.json.JSONException; import org.json.JSONObject; import java.util.ArrayList; import
java.util.List;
import static android.content.ContentValues.TAG;

public class MainActivity extends AppCompatActivity implements SwipeRefreshLayout.OnRefreshListener


{
public static final String URL = "http://192.168.1.11/select.php";
ListView list;
SwipeRefreshLayout swipe;
List<Data> itemList = new ArrayList<Data>();
Adapter adapter;

@Override
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

swipe = (SwipeRefreshLayout) findViewById(R.id.swipe); list = (ListView)


findViewById(R.id.list);
adapter = new Adapter(MainActivity.this, itemList);
list.setAdapter(adapter); swipe.setOnRefreshListener(this); swipe.post(new
Runnable() {
@Override public void run() {
swipe.setRefreshing(true); itemList.clear();
adapter.notifyDataSetChanged(); callVolley();
}
});
}
@Override
public void onRefresh() { itemList.clear();

adapter.notifyDataSetChanged(); callVolley();
} private void callVolley() {
itemList.clear();
adapter.notifyDataSetChanged(); swipe.setRefreshing(true);

JsonArrayRequest jArr = new JsonArrayRequest(URL, new


Response.Listener<JSONArray>() {
@Override
public void onResponse(JSONArray response) { for (int i = 0; i <
response.length(); i++) { try {
JSONObject obj = response.getJSONObject(i); Data item = new Data();

item.setNama(obj.getString("name"));
itemList.add(item); } catch
(JSONException e) {
e.printStackTrace();
} }
adapter.notifyDataSetChanged();

swipe.setRefreshing(false);
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) { VolleyLog.d(TAG, "Error: " +
error.getMessage()); swipe.setRefreshing(false);
}
});
RequestQueue mRequestQueue =
Volley.newRequestQueue(getApplicationContext()); mRequestQueue.add(jArr);
}
}
Activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent" tools:context=".MainActivity">

<androidx.swiperefreshlayout.widget.SwipeRefreshLayout android:id="@+id/swipe"
android:layout_width="match_parent" android:layout_height="wrap_content" >
<ListView
android:id="@+id/list" android:layout_width="match_parent"
android:layout_height="wrap_content" android:divider="@color/black"
android:dividerHeight="2dp" />
</androidx.swiperefreshlayout.widget.SwipeRefreshLayout>

</RelativeLayout>

List.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_height="match_parent"
tools:context=".MainActivity">

<androidx.swiperefreshlayout.widget.SwipeRefreshLayout android:id="@+id/swipe"
android:layout_width="match_parent" android:layout_height="wrap_content" >
<ListView
android:id="@+id/list"
android:layout_width="match_parent" android:layout_height="wrap_content"
android:divider="@color/black" android:dividerHeight="2dp" />
</androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
</RelativeLayout>

You might also like