Bse181009 Aleena Akhtar

You might also like

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

BSE181009 ALEENA AKHTAR

Assignment no 5

Submitted to
Sir Muhammad Bilal
Main Activity
package com.example.ass5;

import android.os.Bundle;

import androidx.appcompat.app.AppCompatActivity;
import androidx.viewpager.widget.ViewPager;

import com.google.android.material.tabs.TabLayout;

public class MainActivity extends AppCompatActivity {

Counter CounterFrag;// making fragment class instance variable in main


activiy
History HistoryFrag;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TabLayout tab = findViewById(R.id.tabs);

MyAdapter Adapterobj = new MyAdapter(getSupportFragmentManager());//


calling fragment manager
ViewPager viewPager = findViewById(R.id.view_pager);
viewPager.setAdapter(Adapterobj);
tab.setupWithViewPager(viewPager);

CounterFrag = new Counter();


HistoryFrag = new History();
}

public CharSequence getPageTitle(int position) {


switch(position){
case 0:
return "Counter";
case 1:
return "History";
}
return null;
}
}

Main Activity layout


<?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=".MainActivity">

<com.google.android.material.tabs.TabLayout
android:id="@+id/tabs"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />

<androidx.viewpager.widget.ViewPager
android:id="@+id/view_pager"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
app:layout_constraintBottom_toBottomOf="parent"

app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" />

</androidx.constraintlayout.widget.ConstraintLayout>
package com.example.ass5;

import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ListView;

import androidx.fragment.app.Fragment;

import java.util.ArrayList;

import static android.R.layout.simple_spinner_item;

public class History extends Fragment {


ArrayList<Integer> list = new ArrayList<Integer>();
ArrayList<String> list2 = new ArrayList<String>();
ListView listview;
int i = 0;
public History() {

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.activity_history, container,
false);

listview = (ListView) v.findViewById(R.id.listView);


list = SharedPref.getList(getContext());

for(Integer item:list)
{
i++;
list2.add("Count "+i+") "+item);
}

ArrayAdapter<String> adapter = new ArrayAdapter<String>( getContext(),


simple_spinner_item,list2);
listview.setAdapter(adapter);
return v;
}
}

<?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=".History">

<ListView
android:id="@+id/listView"
android:layout_width="398dp"
android:layout_height="554dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.4"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="1.0" />

</androidx.constraintlayout.widget.ConstraintLayout>

package com.example.ass5;

import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.TextView;

import androidx.fragment.app.Fragment;

import java.util.ArrayList;

public class Counter extends Fragment {


Button countBtn,resetBtn;
TextView counter;
public int count = 0;

ArrayList<Integer> list = new ArrayList<Integer>();


public Counter() {

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.activity_counter, container,
false);
countBtn = (Button) v.findViewById(R.id.countButton);
resetBtn = (Button) v.findViewById(R.id.resetButton);
counter = (TextView) v.findViewById(R.id.counter);

countBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
count++;
SharedPref.setCount(getContext(),count);
counter.setText(""+count);
}
});

resetBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
list.add(count);
count = 0;
SharedPref.setCount(getContext(),count);
SharedPref.setList(getContext(),list);
counter.setText(""+count);
}
});
return v;
}
}
<?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=".Counter">
<TextView
android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="92dp"
android:text="@string/title"
android:textSize="41sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.495"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />

<TextView
android:id="@+id/counter"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="124dp"
android:text="@string/count"
android:textSize="33sp"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@+id/title" />

<androidx.constraintlayout.widget.Guideline
android:id="@+id/guideline2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintGuide_percent="0.5" />

<Button
android:id="@+id/resetButton"
android:layout_width="161dp"
android:layout_height="80dp"
android:layout_marginBottom="212dp"
android:text="@string/resetBtn"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="@+id/guideline2"
app:layout_constraintWidth_percent="0.5" />

<Button
android:id="@+id/countButton"
android:layout_width="163dp"
android:layout_height="85dp"
android:layout_marginBottom="212dp"
android:text="@string/countBtn"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/guideline2"
app:layout_constraintHorizontal_bias="0.697"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintWidth_percent="0.5" />

</androidx.constraintlayout.widget.ConstraintLayout>
package com.example.ass5;

import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentPagerAdapter;

public class MyAdapter extends FragmentPagerAdapter {

public MyAdapter(FragmentManager fm) {


super(fm);
}
@Override
public Fragment getItem(int position) {
switch(position){
case 0:
return new Counter();
case 1:
return new History();
}
return null;
}
@Override
public int getCount() {
return 2;
}

public CharSequence getPageTitle(int position) {


switch(position){
case 0:
return "Counter";
case 1:
return "History";
}
return null;
}
}

package com.example.ass5;

import android.content.Context;
import android.content.SharedPreferences;
import java.util.ArrayList;
import java.util.StringTokenizer;

import android.content.Context;
import android.content.SharedPreferences;
import java.util.ArrayList;
import java.util.StringTokenizer;

public class SharedPref {


public static final String Count = "count";
public static final String List= "list";

public static void setCount(Context context, int count){


SharedPreferences prefs = context.getSharedPreferences("Prefs",
context.MODE_PRIVATE);
SharedPreferences.Editor editor = prefs.edit();
editor.putInt(Count,count);
editor.commit();
}

public static void setList(Context context, ArrayList<Integer> list){


SharedPreferences prefs = context.getSharedPreferences("Prefs",
context.MODE_PRIVATE);
SharedPreferences.Editor editor = prefs.edit();
String arr = "";
for(int i: list){
arr+= i + ",";
}
editor.putString(List,arr);
editor.commit();
}

public static ArrayList<Integer> getList(Context context){


SharedPreferences prefs = context.getSharedPreferences("Prefs",
context.MODE_PRIVATE);
ArrayList<Integer> list = new ArrayList<Integer>();
String s = prefs.getString(List,"");
StringTokenizer str = new StringTokenizer(s,",");
while (str.hasMoreTokens()){
list.add(Integer.parseInt(str.nextToken()));
}
return list;
}

public static int getCount(Context context){


SharedPreferences prefs = context.getSharedPreferences("Prefs",
context.MODE_PRIVATE);
int count;
count = prefs.getInt(Count, 0);
return count;
}

}
String.xml
<resources>
<string name="app_name">Ass5</string>
<string name="reset">RESET</string>
<string name="count">0</string>
<string name="title">TASBEEH HISTORY</string>
<string name="title_activity_history">History</string>
<!-- Strings used for fragments for navigation -->
<string name="first_fragment_label">First Fragment</string>
<string name="second_fragment_label">Second Fragment</string>
<string name="next">Next</string>
<string name="previous">Previous</string>

<string name="hello_first_fragment">Hello first fragment</string>


<string name="hello_second_fragment">Hello second fragment. Arg:
%1$s</string>
<string name="resetBtn">RESET</string>
<string name="countBtn">COUNT</string>
</resources>

You might also like