Assignment project for making Android Studio project.
- Create project in android;
- Create an Activity Named (MainActivity). Use your own interface; Also find a corresponding Object in the (List of Objects below) to use.
- The Second Activity Name (ListViewActivity) should be invoked by a button from MainActivity. It should use the
(ListViw)
widget to display a simple string property of the object as given.
List of Objects
- House
- Dog
- Flower
- Computer
- School
- Book
MainActivity
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
Button ListViewActivityButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
ListViewActivityButton = findViewById(R.id.ListViewActivityButton);
ListViewActivityButton.setOnClickListener(this);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
@Override
public void onClick(View v) {
if (v == ListViewActivityButton){
Intent myIntent = new Intent(MainActivity.this, ListViewActivity.class);
MainActivity.this.startActivity(myIntent);
}
}
}
ListViewActivity
public class ListViewActivity extends AppCompatActivity {
ListView listViewData;
String[] mainTitle = {"House","Dog","Flower","Computer","School","Book"};
String[] subTitle = {"Sub Title 1", "Sub Title 2", "Sub Title 3", "Sub Title 4", "Sub Title 5", "Sub Title 6"};
Integer[] imageId={
R.drawable.house,R.drawable.dog,
R.drawable.flower,R.drawable.computer,
R.drawable.school,R.drawable.book
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_list_view);
listViewData = findViewById(R.id.listViewData);
MyListViewAdapter adapter = new MyListViewAdapter(this, mainTitle, subTitle, imageId);
listViewData.setAdapter(adapter);
}
}
MyListViewAdapter
public class MyListViewAdapter extends ArrayAdapter<String> {
private final Activity context;
private final String[] mainTitle;
private final String[] subTitle;
private final Integer[] imageId;
public MyListViewAdapter(Activity context, String[] mainTitle, String[] subTitle, Integer[] imageId) {
super(context, R.layout.activity_listview_item, mainTitle);
this.context = context;
this.mainTitle = mainTitle;
this.subTitle = subTitle;
this.imageId = imageId;
}
public View getView(int position, View view, ViewGroup parent){
LayoutInflater inflater = context.getLayoutInflater();
@SuppressLint("ViewHolder") View rowView = inflater.inflate(R.layout.activity_listview_item, null, true);
TextView titleText = (TextView) rowView.findViewById(R.id.title);
ImageView imageView = (ImageView) rowView.findViewById(R.id.icon);
TextView subtitleText = (TextView) rowView.findViewById(R.id.subtitle);
titleText.setText(mainTitle[position]);
imageView.setImageResource(imageId[position]);
subtitleText.setText(subTitle[position]);
return rowView;
}
}
activity_main
<?xml version="1.0" encoding="utf-8"?>
<androidx.coordinatorlayout.widget.CoordinatorLayout 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">
<com.google.android.material.appbar.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/Theme.Assignment.AppBarOverlay">
<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:popupTheme="@style/Theme.Assignment.PopupOverlay" />
</com.google.android.material.appbar.AppBarLayout>
<include layout="@layout/content_main" />
</androidx.coordinatorlayout.widget.CoordinatorLayout>
content_main
<?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"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<Button
android:id="@+id/ListViewActivityButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="List View"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.498"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
activity_list_view
<?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=".ListViewActivity">
<ListView
android:id="@+id/listViewData"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
activity_listview_item
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal" >
<ImageView
android:id="@+id/icon"
android:layout_width="60dp"
android:layout_height="60dp"
android:padding="5dp"
android:contentDescription="@string/description" />
<LinearLayout android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Medium Text"
android:textStyle="bold"
android:textAppearance="?android:attr/textAppearanceMedium"
android:layout_marginStart="10dp"
android:layout_marginTop="5dp"
android:padding="2dp"
android:textColor="#4d4d4d" />
<TextView
android:id="@+id/subtitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/textview"
android:layout_marginStart="10dp"/>
</LinearLayout>
</LinearLayout>
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.