MOBILE PROGRAMMING
OLEH:
19552011187
Luthfi Alfikri
KELAS PERTUKARAN ITB STIKOM Bali
DAN STTB BANDUNG
Soal
1. Jelaskan apakah yang Anda ketahui tentang Fragment.
Jawab :
Fragment merupakan salah satu komponen pada Android Studio dengan
fungsi yang hampir sama seperti activity tetapi memiliki “lifecycle” yang
berbeda.
<TextView
android:id="@+id/nim"
android:layout_width="301dp"
android:layout_height="53dp"
android:layout_marginTop="180dp"
android:layout_marginEnd="30dp"
android:gravity="center_vertical"
android:text="@string/nim"
android:textSize="30sp"
android:textStyle="bold" />
<TextView
android:id="@+id/nama"
android:layout_width="301dp"
android:layout_height="61dp"
android:layout_marginTop="250dp"
android:layout_marginEnd="10dp"
android:gravity="center_vertical"
android:text="@string/nama"
android:textSize="30sp"
android:textStyle="bold" />
</FrameLayout>
MainActivity.java
package com.example.latihanfragment;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.Fragment;
import android.os.Bundle;
import android.view.MenuItem;
import android.widget.Toast;
import
com.google.android.material.bottomnavigation.BottomNavigationVie
w;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
getFragmentPage(new HomeFragment());
bottomNavigationView=findViewById(R.id.bottom_navigation);
bottomNavigationView.setOnNavigationItemSelectedListener(new
BottomNavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull
MenuItem menuItem) {
switch (menuItem.getItemId()){
case R.id.menu_home:
//Toast.makeText(MainActivity.this,
"Anda Memilih Home", Toast.LENGTH_SHORT).show();
getFragmentPage(new HomeFragment());
break;
case R.id.menu_favorite:
//Toast.makeText(MainActivity.this,
"Anda Memilih Favorite", Toast.LENGTH_SHORT).show();
getFragmentPage(new FavoriteFragment());
break;
case R.id.menu_about:
//Toast.makeText(MainActivity.this,
"Anda Memilih Favorite", Toast.LENGTH_SHORT).show();
getFragmentPage(new AboutFragment());
break;
}
return true;
}
});
}
getSupportFragmentManager().beginTransaction().replace(R.id.mai
n_container, fragment) .commit();return true;
}return false; }
}
6. Jelaskan fungsi dari CardView dan tunjukkan potongan kode xml pada
modul ini yang berfungsi untuk membuat CardView.List
Jawab :
CardView merupakan view paketan dari Material Design — diperkenalkan
pada Android Versi Lolipop. Bentuk view ini biasa digunakan untuk
pembungkusan data (sepaket data — beberapa view) yang ditandai dengan
tampilan view nya yang memiliki drop shadow (elevation) dan corner
radius. Adapun CardView ini merupakan subclass dari FrameLayout.
Contoh potongan kode xml
<?xml version="1.0" encoding="utf-8"?>
<androidx.cardview.widget.CardView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/card_team"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:layout_gravity="center">
<RelativeLayout
android:layout_width="336dp"
android:layout_height="134dp"
android:layout_marginStart="45dp"
android:orientation="horizontal">
<ImageView
android:id="@+id/img_logo"
android:layout_width="87dp"
android:layout_height="match_parent"
android:contentDescription="@string/cont_desc_logo"
app:srcCompat="@mipmap/ic_launcher_round" />
<LinearLayout
android:layout_width="249dp"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:id="@+id/text_no"
android:layout_width="72dp"
android:layout_height="wrap_content"
android:text="@string/no"
android:textSize="20sp" />
<TextView
android:id="@+id/text_team"
android:layout_width="247dp"
android:layout_height="80dp"
android:text="@string/team"
android:textSize="15sp" />
</LinearLayout>
</RelativeLayout>
</androidx.cardview.widget.CardView>
7. Apakah fungsi dari potongan kode program berikut yang terdapat pada
modul ini.
Potongan Kode HomeFragment.java
recyclerAdapterTeam.setItemClickListener(new ItemClickListener()
{
@Override
public void onClick(View view, int position) {
Toast.makeText(getActivity(),
teamArrayList.get(position).getName(),
Toast.LENGTH_SHORT).show();
}
});
Jawab :
Fungsi nya Ketika di klik ListView tersebut akan ada pemberitahuan atau
muncul Text. Dengan posisi yang sudah ditentukan di ListView
8. Kembangkan aplikasi pada modul ini, sehingga ketika salah satu item
dari gambar team dipilih akan menampilkan sebuah activity baru untuk
menampilakn deskripsi dari team.
Kode Program ( layout/xml dan .Java)
// tulis kode programnya disini
City.xml
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
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=".City">
<TextView
android:id="@+id/textView4"
android:layout_width="354dp"
android:layout_height="364dp"
android:layout_marginStart="54dp"
android:layout_marginTop="63dp"
android:layout_marginEnd="54dp"
android:layout_marginBottom="156dp"
android:text="@string/commonly_known_as_city_is_a_football_club_
in_manchester_england_founded_in_1880_as_st_mark_s_west_gorton_i
t_became_ardwick_association_football_club_in_1887_and_mancheste
r_city_in_1894_the_club_s_home_ground_is_the_city_of_manchester_
stadium_in_east_manchester_to_which_it_moved_in_2003_having_play
ed_at_maine_road_since_1923"
android:textSize="20sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/imageView4" />
<ImageView
android:id="@+id/imageView4"
android:layout_width="247dp"
android:layout_height="156dp"
android:layout_marginStart="97dp"
android:layout_marginEnd="97dp"
android:contentDescription="@string/todo"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.444"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.176"
app:srcCompat="@drawable/img_city" />
</androidx.constraintlayout.widget.ConstraintLayout>
City.java
package com.example.latihanfragment;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_city);
}
}
RecyclerAdapterTeam.java
package com.example.latihanfragment;
import android.content.Context;
import android.content.Intent;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import androidx.recyclerview.widget.RecyclerView.ViewHolder;
import java.util.ArrayList;
import java.util.List;
@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup
viewGroup, int i) {
View view =
LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.li
st_team, viewGroup, false);
ViewHolder viewHolder = new ViewHolder(view);
return viewHolder;
}
@Override
public void onBindViewHolder(@NonNull ViewHolder viewHolder,
int i) {
int no = i + 1;
viewHolder.txtNo.setText(String.valueOf(no));
viewHolder.txtTeam.setText(teamArrayList.get(i).getName());
viewHolder.imgLogo.setImageResource(Integer.parseInt(teamArrayLi
st.get(i).getLogo()));
}
@Override
public int getItemCount() {
return teamArrayList != null ? teamArrayList.size() : 0;
}
@Override
public void onClick(View v) {
int position = getAdapterPosition();
if (position == 0) {
Toast.makeText(context, "position" + position,
Toast.LENGTH_SHORT).show();
Intent intent = new Intent(context,
Barca.class);
intent.putExtra("name",
teamArrayList.get(position).getName());
context.startActivity(intent);
} else if (position == 1) {
Toast.makeText(context, "position" + position,
Toast.LENGTH_SHORT).show();
Intent intent = new Intent(context,
Madrid.class);
intent.putExtra("name",
teamArrayList.get(position).getName());
context.startActivity(intent);
} else if(position == 2) {
Toast.makeText(context, "position" + position,
Toast.LENGTH_SHORT).show();
Intent intent = new Intent(context,
Munchen.class);
intent.putExtra("name",
teamArrayList.get(position).getName());
context.startActivity(intent);
} else if(position == 3) {
Toast.makeText(context, "position" + position,
Toast.LENGTH_SHORT).show();
Intent intent = new Intent(context, City.class);
intent.putExtra("name",
teamArrayList.get(position).getName());
context.startActivity(intent);
} else if(position == 4) {
Toast.makeText(context, "position" + position,
Toast.LENGTH_SHORT).show();
Intent intent = new Intent(context,
United.class);
intent.putExtra("name",
teamArrayList.get(position).getName());
context.startActivity(intent);
} else if(position == 5) {
Toast.makeText(context, "position" + position,
Toast.LENGTH_SHORT).show();
Intent intent = new Intent(context,
Chelsea.class);
intent.putExtra("name",
teamArrayList.get(position).getName());
context.startActivity(intent);
} else if(position == 6) {
Toast.makeText(context, "position" + position,
Toast.LENGTH_SHORT).show();
Intent intent = new Intent(context,
Milan.class);
intent.putExtra("name",
teamArrayList.get(position).getName());
context.startActivity(intent);
} else if(position == 7) {
Toast.makeText(context, "position" + position,
Toast.LENGTH_SHORT).show();
Intent intent = new Intent(context,
Arsenal.class);
intent.putExtra("name",
teamArrayList.get(position).getName());
context.startActivity(intent);
}
}
}
}