Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?xml version="1.0" encoding="utf-8"?>
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="vertical"
- android:background="#FFFFFF"
- android:layout_width="match_parent"
- android:layout_height="match_parent">
- <TextView
- android:id="@+id/title"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:paddingTop="10dp"
- android:paddingBottom="10dp"
- android:text="Contact"
- android:gravity="center_horizontal"
- android:textAppearance="@style/TextAppearance.AppCompat.Large"
- android:layout_gravity="center"
- android:textColor="#FFFFFF"
- android:background="#283593"/>
- <ListView xmlns:android="http://schemas.android.com/apk/res/android"
- android:id="@+id/listView"
- android:layout_height="wrap_content"
- android:layout_width="match_parent"
- android:layout_gravity="center"
- >
- </ListView>
- <Button
- android:id="@+id/cancel_button"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:textAppearance="@style/TextAppearance.AppCompat.Medium"
- android:text="Cancel"
- android:textColor="#FFFFFF"
- android:background="#283593"/>
- </LinearLayout>
- <?xml version="1.0" encoding="utf-8"?>
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="vertical" android:layout_width="match_parent"
- android:layout_height="match_parent">
- <TextView
- android:id="@android:id/text1"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:textAppearance="?android:attr/textAppearanceMedium"
- android:gravity="center"
- android:textColor="#000000"
- android:minHeight="?android:attr/listPreferredItemHeight"
- />
- </LinearLayout
- public class OptionMenuFragment extends Fragment implements View.OnClickListener{
- private String phoneNumber, email;
- public OptionMenuFragment() {
- // Required empty public constructor
- }
- @Override
- public View onCreateView(LayoutInflater inflater, ViewGroup container,
- Bundle savedInstanceState) {
- View view = inflater.inflate(R.layout.option_main_fragment, container, false);
- Button button1=(Button) view.findViewById(R.id.button1);
- button1.setOnClickListener(this);
- Button button2=(Button) view.findViewById(R.id.button2);
- button2.setOnClickListener(this);
- ....
- Button button6=(Button) view.findViewById(R.id.button6);
- button6.setOnClickListener(this);
- getActivity().setTitle("Home");
- // Inflate the layout for this fragment
- return view;
- }
- }
- @Override
- public void onClick(View view) {
- switch (view.getId()) {
- case R.id.button1:
- Intent intent = new Intent(getActivity(), MyPage.class);
- startActivity(intent);
- break;
- case R.id.button2:
- Toast.makeText(getActivity(), "button 2 clicked", Toast.LENGTH_SHORT).show();
- break;
- ....................
- break;
- case R.id.button5:
- // show the first alert dialog
- showFirstDialog();
- break;
- case R.id.button6:
- Toast.makeText(getActivity(), "button 6 clicked", Toast.LENGTH_SHORT).show();
- break;
- }
- }
- private void showFirstDialog() {
- //Create a new builder and get the layout.
- final AlertDialog.Builder builder = new
- AlertDialog.Builder(this.getActivity());
- LayoutInflater inflater = this.getActivity().getLayoutInflater();
- View dialogView = inflater.inflate(R.layout.first_alertlist_contact, null);
- builder.setView(dialogView);
- builder.setCancelable(true);
- //Show the dialog
- final AlertDialog alert = builder.show();
- //Get the TextView, ListView, Button from the layout.
- TextView alertTitle = (TextView) dialogView.findViewById(R.id.title);
- Button alertButton = (Button) dialogView.findViewById(R.id.cancel_button);
- ListView alertListView = (ListView) dialogView.findViewById(listView);
- //Set title
- alertTitle.setText("Contact");
- //Defined Array values to show in ListView
- String[] companyName = getResources().getStringArray(R.array.company_name);
- ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>
- (this.getActivity(), R.layout.first_alertlist_textstyle, android.R.id.text1, companyName);
- alertListView.setAdapter(arrayAdapter);
- alertButton.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- alert.dismiss();
- }
- });
- alertListView.setOnItemClickListener(new AdapterView.OnItemClickListener()
- {
- @Override
- public void onItemClick(AdapterView<?> parent, View view,
- int position, long id) {
- // ListView Clicked item index
- int itemPosition = position;
- if (itemPosition == 0) {
- alert.dismiss();
- showSecondDialog(0);
- }
- else if (itemPosition == 1) {
- alert.dismiss();
- showSecondDialog(1);
- }
- else if (itemPosition == 2) {
- alert.dismiss();
- showSecondDialog(2);
- }
- else if (itemPosition == 3) {
- alert.dismiss();
- showSecondDialog(3);
- }
- else if (itemPosition == 3) {
- alert.dismiss();
- showSecondDialog(3);
- }
- else if (itemPosition == 4) {
- alert.dismiss();
- showSecondDialog(4);
- }
- else if (itemPosition == 5) {
- alert.dismiss();
- showSecondDialog(5);
- }
- }
- });
- }
- private void showSecondDialog(int position) {
- final AlertDialog.Builder builder = new
- AlertDialog.Builder(this.getActivity(), R.style.DialogStyle);
- LayoutInflater inflater = this.getActivity().getLayoutInflater();
- View dialogView = inflater.inflate(R.layout.first_alertlist_contact, null);
- builder.setView(dialogView);
- builder.setCancelable(true);
- //setStyle(DialogFragment.STYLE_NORMAL, R.style.DialogStyle);
- //Show the dialog
- final AlertDialog alert = builder.show();
- //Get the TextView, ListView, Button from the layout.
- TextView alertTitle = (TextView) dialogView.findViewById(R.id.title);
- Button alertButton = (Button) dialogView.findViewById(R.id.cancel_button);
- final ListView alertListView = (ListView) dialogView.findViewById(listView);
- alertTitle.setText("What do you want to do");
- // Defined Array values to show in ListView
- String[] values = getResources().getStringArray(R.array.contact_way);
- ArrayAdapter<String> adapter = new ArrayAdapter<String>(this.getActivity(),
- R.layout.first_alertlist_textstyle, android.R.id.text1, values);
- alertListView.setAdapter(adapter);
- alertButton.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- alert.dismiss();
- }
- });
- // Can I do this logic in different way?
- switch (position) {
- case 0:
- phoneNumber = "12335";
- email="mail_1.com";
- break;
- case 1:
- phoneNumber = "123566";
- email="mail_2.com";
- break;
- case 2:
- phoneNumber = "125989";
- email="mail_3.com";
- break;
- case 3:
- phoneNumber = "67790";
- email="mail_4.de";
- break;
- case 4:
- phoneNumber = "874545";
- email="mail_5.com";
- break;
- case 5:
- phoneNumber = "79874";
- email="mail_6.de";
- }
- alertListView.setOnItemClickListener(new AdapterView.OnItemClickListener()
- {
- @Override
- public void onItemClick(AdapterView<?> parent, View view,
- int position, long id) {
- // ListView Clicked item index
- int itemPosition = position;
- if (itemPosition == 0) {
- alert.dismiss();
- AlertDialog.Builder builder = new
- AlertDialog.Builder(getActivity());
- builder.setTitle("calling to " + phoneNumber);
- //builder.setMessage("Are you sure you want to log out?");
- builder.setPositiveButton("Call", new DialogInterface.OnClickListener()
- {
- public void onClick(DialogInterface dialog, int which) {
- // close the dialog, go to login page
- if (isPermissionGranted()) {
- call_action();
- }
- }
- });
- builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int which) {
- // Do nothing
- dialog.dismiss();
- }
- });
- AlertDialog alert = builder.create();
- alert.show();
- }
- if (itemPosition == 1){
- alert.dismiss();
- AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
- builder.setTitle("Email to " + email);
- builder.setPositiveButton("ok", new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int which) {
- // Do nothing
- dialog.dismiss();
- }
- });
- builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int which) {
- // Do nothing
- dialog.dismiss();
- }
- });
- AlertDialog alert = builder.create();
- alert.show();
- }
- //several cases..
- }
- });
- }
- public void call_action(){
- Intent callIntent = new Intent(Intent.ACTION_CALL);
- callIntent.setData(Uri.parse("tel:" + phoneNumber));
- startActivity(callIntent);
- }
- public boolean isPermissionGranted() {
- if (Build.VERSION.SDK_INT >= 23) {
- if (getActivity().checkSelfPermission(android.Manifest.permission.CALL_PHONE)
- == PackageManager.PERMISSION_GRANTED) {
- Log.v("TAG","Permission is granted");
- return true;
- } else {
- Log.v("TAG","Permission is revoked");
- ActivityCompat.requestPermissions(this.getActivity(), new String[]
- {Manifest.permission.CALL_PHONE}, 1);
- return false;
- }
- }
- else { //permission is automatically granted on sdk<23 upon installation
- Log.v("TAG","Permission is granted");
- return true;
- }
- }
- @Override
- public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) {
- switch (requestCode) {
- case 1: {
- if (grantResults.length > 0
- && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
- Toast.makeText(getActivity().getApplicationContext(), "Permission granted", Toast.LENGTH_SHORT).show();
- call_action();
- } else {
- Toast.makeText(getActivity().getApplicationContext(), "Permission denied", Toast.LENGTH_SHORT).show();
- }
- return;
- }
- // other 'case' lines to check for other
- // permissions this app might request
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement