LAPORAN PRAKTIKUM PEMROGRAMAN APLIKASI BERGERAK
MODUL VII ( GRIDVIEW )
Nama : Randi Padilah NIM : 20200810062
Kelas : TINFC-2020-01 (A)
LABORATORIUM PRAKTIKUM FAKULTAS ILMU KOMPUTER
UNIVERSITAS KUNINGAN
2023
A. PRETEST
1. Jelaskan ide/gagasan projek anda dalam menggunakan gridview pada ide/gagasan anda?
Jawab :
Projek yang memerlukan gridview adalaha aplikasi e-commerce agar tampilan barang yang di jual lebih ringkas karena dalam setiap barisnya terdapat satu atau banyak widget tree.
B. POSTEST
1. Jelaskan secara singkat tugas/fungsi DetailsActivity.java, GridViewAdapter.java dan ImageItem.java
• DetailsActivity.java merupakan salah satu komponen yang ada di Android Studio yang berfungsi untuk menampilkan antarmuka pengguna (UI) dari aplikasi yang akan dibuat, biasanya diletakkan pada “setcontentview”.
• GridViewAdapter.java inilah yang menyediakan akses ke item data dan juga bertanggung jawab untuk membuat sebuah View pada setiap item dalam kumpulan data.
• ImageItem.java merupakan komponen Android Studio berfungsi untuk memasukin gambar kedalam codingan yg kita buat.
C. TUGAS DAN PERTANYAAN
Sourcecode : MainActivity.java
package com.example.modul7;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.GridView;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity { private GridView gridView;
String[] title = {"adelaide_australia.jpg", "calgary_kanada.jpg", "copenhagen_denmark.jpg", "melbourne_australia.jpg", "osaka_jepang.jpg", "sydney_australia.jpg",
"tokyo_jepang.jpg", "toronto_kanada.jpg", "vancouver_kanada.jpg", "wina_austria.jpg"};
int[] img = {R.drawable.adelaide_australia, R.drawable.calgary_kanada, R.drawable.copenhagen_denmark, R.drawable.melbourne_australia, R.drawable.osaka_jepang, R.drawable.sydney_australia,
R.drawable.tokyo_jepang, R.drawable.toronto_kanada, R.drawable.vancouver_kanada, R.drawable.wina_austria};
@Override
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
GridViewAdapter adapter = new GridViewAdapter(MainActivity.this, img, title);
gridView = findViewById(R.id.grid_view);
gridView.setAdapter(adapter);
gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
String texView = title[+position];
int imageView = img[+position];
Intent intent = new Intent(MainActivity.this, DetailsActivity.class);
intent.putExtra("title", texView);
intent.putExtra("image", imageView);
startActivity(intent);
} });
} }
Activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#D1C4E9"
tools:context=".MainActivity">
<GridView
android:id="@+id/grid_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:clickable="true"
android:columnWidth="100dp"
android:drawSelectorOnTop="true"
android:focusable="true"
android:gravity="center"
android:numColumns="auto_fit"
android:stretchMode="columnWidth"
android:verticalSpacing="5dp" />
</RelativeLayout>
GridViewAdapter.java
package com.example.modul7;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
public class GridViewAdapter extends BaseAdapter { private Context context;
private int[] img ; private String[] title;
public GridViewAdapter(Context context, int[] img, String[] title) { this.context = context;
this.img = img;
this.title = title;
}
@Override
public int getCount() { return title.length;
}
@Override
public Object getItem(int position) { return null;
}
@Override
public long getItemId(int position) { return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) { View viewGrid;
LayoutInflater inflater = (LayoutInflater)
context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
if (convertView == null) {
viewGrid = inflater.inflate(R.layout.grid_item_layout, null);
TextView textView = (TextView) viewGrid.findViewById(R.id.textView);
ImageView imageView = (ImageView) viewGrid.findViewById(R.id.imageView);
textView.setText(title[position]);
imageView.setImageResource(img[position]);
} else {
viewGrid = (View) convertView;
}
return viewGrid;
} }
grid_item_layout.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="5dp"
android:padding="5dp"
android:background="#ffffff"
android:orientation="vertical">
<ImageView
android:id="@+id/imageView"
android:layout_width="100dp"
android:layout_height="100dp" />
<TextView
android:id="@+id/textView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:gravity="center"
android:maxLines="1"
android:textSize="12sp" />
</LinearLayout>
DetailsActivity.java
package com.example.modul7;
import androidx.appcompat.app.AppCompatActivity;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.widget.ImageView;
import android.widget.TextView;
public class DetailsActivity extends AppCompatActivity { @Override
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);
setContentView(R.layout.activity_details);
String title = getIntent().getStringExtra("title");
int img = getIntent().getIntExtra("image", R.drawable.ic_launcher_foreground);
TextView imgTitle = findViewById(R.id.title);
imgTitle.setText(title);
ImageView imageView = findViewById(R.id.image);
imageView.setImageResource(img);
} }
activity_details.xml
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".DetailsActivity">
<ImageView
android:id="@+id/image"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center"
android:scaleType="fitCenter" />
<TextView
android:id="@+id/title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:background="#00000c"
android:textColor="#ffffff"
android:padding="10dp"
android:textSize="20sp" />
</FrameLayout>
Hasil output :