How popular is AlertDialog in Android Studio?

1

I'm taking a hit here from Java and Android Studio.

  • I've already created an Activity + DialogFragment, the location information does not change from the Activity screen to the DialogFragment!

  • Now I'm trying to make an AlertDialog within the Activity to see if I can use the latitude and longitude of the user's gps. But when you click the button it gives the error and closes the application.

How do I make this information popular within this alert dialog?

AboutScreen.java

/*===============================================================================
Copyright (c) 2016 PTC Inc. All Rights Reserved.

Copyright (c) 2012-2014 Qualcomm Connected Experiences, Inc. All Rights Reserved.

Vuforia is a trademark of PTC Inc., registered in the United States and other 
countries.
===============================================================================*/

package com.vuforia.samples.Books.ui.ActivityList;

import com.vuforia.samples.Books.R;
import com.vuforia.samples.Books.app.Books.Books;
import com.vuforia.samples.Books.app.Neoris.Shopping;
import android.Manifest;

import android.app.AlertDialog;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.location.Address;
import android.location.Location;
import android.location.LocationManager;
import android.os.Bundle;
import android.support.v4.app.ActivityCompat;
import android.support.v4.app.FragmentActivity;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;


public class AboutScreen extends FragmentActivity {

    private Button mStartButton;
    private String mClassToLaunch;
    private String mClassToLaunchPackage;

    private TextView txtShoppingName;
    private TextView txtShoppingCity;
    private TextView txtShoppingLat;
    private TextView txtShoppingLong;

    private Location location;
    private LocationManager locationManager;
    private Address endereco;

    private double latitude;
    private double longitude;



    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.about_screen);


        Bundle extras = getIntent().getExtras();
        mClassToLaunchPackage = getPackageName();
        mClassToLaunch = mClassToLaunchPackage + "." + extras.getString("ACTIVITY_TO_LAUNCH");

        /**
         * VERIFICAÇÃO DA PERMISSÃO DO USUÁRIO AO USO DO GPS
         */

        if(ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION)
                != PackageManager.PERMISSION_GRANTED) {

        } else {
            locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
            location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
        }

        if (location !=null){
            latitude = location.getLatitude();
            longitude = location.getLongitude();
        }

        txtShoppingName = (TextView) findViewById(R.id.txtShoppingName);
        txtShoppingCity = (TextView) findViewById(R.id.txtShoppingCity);
        txtShoppingLat = (TextView) findViewById(R.id.txtShoppingLat);
        txtShoppingLong = (TextView) findViewById(R.id.txtShoppingLong);

        mStartButton = (Button) findViewById(R.id.button_start);
        mStartButton.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {


                //Cria um Layout para o DialogFragment.
                AlertDialog.Builder mBuilder = new AlertDialog.Builder(AboutScreen.this);
                AboutScreen abs = new AboutScreen();
                View mView = getLayoutInflater().inflate(R.layout.fragment_dialogo, null);

                ImageView mImageTitle = (ImageView) mView.findViewById(R.id.imageTitle);
                TextView  mShoppingName = (TextView) mView.findViewById(R.id.shoppingName);
                TextView  mShoppingCity = (TextView) mView.findViewById(R.id.shoppingCity);
                Button mComecarButton = (Button) mView.findViewById(R.id.btn_comecar);

                //Insere as Informações ao Dialogo.
                txtShoppingLat.setText(" " + latitude);
                txtShoppingLong.setText(" " + longitude);


                //Abre a Activity Books.
                mComecarButton.setOnClickListener(new OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        Intent i = new Intent(AboutScreen.this, Books.class);
                        startActivity(i);
                    }
                });

                mBuilder.setView(mView);
                AlertDialog dialog = mBuilder.create();
                dialog.show();
            }
        });

    }



}

AlertFragmentLayout

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/white"
    android:gravity="center"
    android:padding="10dp"
    android:orientation="vertical">

    <ImageView
        android:id="@+id/backgroundImageTitle"
        android:layout_width="match_parent"
        android:background="@color/blue_aliansce"
        android:layout_height="100dp"
        android:gravity="center_horizontal|center_vertical" />

    <ImageView
        android:id="@+id/imageTitle"
        android:layout_width="50dp"
        android:layout_height="100dp"
        android:src="@drawable/world_location"
        android:gravity="center_horizontal|center_vertical"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true" />

    <TextView
        android:id="@+id/shoppingName"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textColor="@color/black"
        android:text="SHOPPING:"
        android:textSize="20dp"
        android:layout_marginTop="14dp"
        android:layout_below="@+id/backgroundImageTitle"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_marginLeft="8dp"
        android:layout_marginStart="8dp" />

    <TextView
        android:id="@+id/shoppingCity"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textColor="@color/black"
        android:text="CIDADE:"
        android:textSize="20dp"
        android:layout_marginTop="8dp"
        android:layout_below="@+id/shoppingName"
        android:layout_alignLeft="@+id/shoppingName"
        android:layout_alignStart="@+id/shoppingName" />

    <TextView
        android:id="@+id/shoppingLat"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textColor="@color/black"
        android:text="LATITUDE:"
        android:textSize="20dp"
        android:layout_marginTop="10dp"
        android:layout_below="@+id/shoppingCity"
        android:layout_alignLeft="@+id/shoppingCity"
        android:layout_alignStart="@+id/shoppingCity" />

    <TextView
        android:id="@+id/shoppingLong"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textColor="@color/black"
        android:text="LONGITUDE:"
        android:textSize="20dp"
        android:layout_marginTop="10dp"
        android:layout_below="@+id/shoppingLat"
        android:layout_alignLeft="@+id/shoppingLat"
        android:layout_alignStart="@+id/shoppingLat" />

    <Button
        android:id="@+id/btn_comecar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@color/green_aliansce"
        android:gravity="center_horizontal|center_vertical"
        android:textSize="@dimen/menu_title"
        android:textColor="@color/white"
        android:fontFamily="sans-serif"
        android:text="@string/btn_comecar"
        android:layout_below="@+id/shoppingLong"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_marginTop="27dp" />

    <TextView
        android:id="@+id/txtShoppingName"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/shoppingName"
        android:layout_alignLeft="@+id/imageTitle"
        android:layout_alignStart="@+id/imageTitle"
        android:text="TextView"
        android:layout_alignTop="@+id/shoppingName" />

    <TextView
        android:id="@+id/txtShoppingCity"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/shoppingLat"
        android:layout_alignLeft="@+id/txtShoppingName"
        android:layout_alignStart="@+id/txtShoppingName"
        android:text="TextView"
        android:layout_alignTop="@+id/shoppingCity" />

    <TextView
        android:id="@+id/txtShoppingLat"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/shoppingLong"
        android:layout_alignLeft="@+id/txtShoppingCity"
        android:layout_alignStart="@+id/txtShoppingCity"
        android:text="TextView"
        android:layout_alignTop="@+id/shoppingLat" />

    <TextView
        android:id="@+id/txtShoppingLong"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/txtShoppingLat"
        android:layout_alignStart="@+id/txtShoppingLat"
        android:layout_alignTop="@+id/shoppingLong"
        android:text="TextView"
        android:layout_above="@+id/btn_comecar" />

</RelativeLayout>

ERROR

  

06-14 15: 12: 17,818 11356-11356 / com.vuforia.samples.Books   E / AndroidRuntime: FATAL EXCEPTION: main                                                                              Process: com.vuforia.samples.Books, PID: 11356                                                                              java.lang.NullPointerException: Attempt to invoke virtual method 'void   android.widget.TextView.setText (java.lang.CharSequence) 'on a null   object reference                                                                                  at   com.vuforia.samples.Books.ui.ActivityList.AboutScreen $ 1.onClick (AboutScreen.java:104)                                                                                  at android.view.View.performClick (View.java:5340)                                                                                  at android.view.View $ PerformClick.run (View.java:21610)                                                                                  at android.os.Handler.handleCallback (Handler.java:815)                                                                                  at android.os.Handler.dispatchMessage (Handler.java:104)                                                                                  at android.os.Looper.loop (Looper.java:207)                                                                                  at android.app.ActivityThread.main (ActivityThread.java:5776)                                                                                  at java.lang.reflect.Method.invoke (Native Method)                                                                                  at   com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:888)                                                                                  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:749)

    
asked by anonymous 14.06.2017 / 20:10

1 answer

0

By mistake, some of your TextView was not found correctly by its findViewById in Java. You have to debug and see which one (which returns null for the variable). In addition, its layout has views with repeated ids, and some views are using alignment referencing other views with "@ + id" (it should only be "@id", since + is only used to create a new id in the view hierarchy and assign it to a view) and this can also cause problems.

    
15.06.2017 / 01:23