Android 单击按钮时不会发生任何事情

Android 单击按钮时不会发生任何事情,android,Android,运行应用程序后,主页中的一个按钮不起作用。当我单击医院附近的“”(NearHospital1)时,什么也没有发生。此按钮链接到另一个页面,显示附近医院使用定位服务。程序中没有错误。有人看到我放错地方或犯了错误吗 Home.java public class home extends AppCompatActivity implements LocationListener{ Button alert; RelativeLayout rl1; Button nearhos

运行应用程序后,主页中的一个按钮不起作用。当我单击医院附近的“”(NearHospital1)时,什么也没有发生。此按钮链接到另一个页面,显示附近医院使用定位服务。程序中没有错误。有人看到我放错地方或犯了错误吗

Home.java

public class home extends AppCompatActivity implements LocationListener{

    Button alert;
    RelativeLayout rl1;
    Button nearhospitals1;
    TextView nearpolice;
    TextView allhspt;
    TextView allpoli;
    TextView Bld;

    LocationManager locationManager;
    String mprovider;
    // Button service;
    String longitude, latitude;

//    SharedPreferences shared;
//    SharedPreferences.Editor editor;

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.home);
    alert=(Button)findViewById(R.id.button_alert);
//        shared = getSharedPreferences("get", Context.MODE_PRIVATE);
//        editor = shared.edit();
        nearhospitals1= (Button) findViewById(R.id.nearhospitals1);
        locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
        Criteria criteria = new Criteria();

        mprovider = locationManager.getBestProvider(criteria, false);

        if (mprovider != null && !mprovider.equals("")) {
            if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
                return;
            }
            Location location = locationManager.getLastKnownLocation(mprovider);
            locationManager.requestLocationUpdates(mprovider, 15000, 1, this);

            if (location != null)
                onLocationChanged(location);
            else
                Toast.makeText(getBaseContext(), "TURN ON GPS", Toast.LENGTH_SHORT).show();
        }

        alert.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                SharedPreferences pref = getApplicationContext().getSharedPreferences("pref", MODE_PRIVATE);
                String cal = pref.getString("call", "");
                String sms=pref.getString("msg","");
                Log.e(cal, "gbggfgffg");
                Intent inte = new Intent(Intent.ACTION_CALL);
                inte.setData(Uri.parse("tel:" + cal));
                if (ActivityCompat.checkSelfPermission(home.this,
                        Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED) {
                    return;
                }
             //   Uri smsToUri = Uri.parse("smsto:" + sms);

                // message = message.replace("%s", StoresMessage.m_storeName);
               //intent.putExtra("sms_body", message);

                startActivity(inte);

            }
        });}

    public  void  alerthspitl(View view){

        Intent inten = new Intent(Intent.ACTION_VIEW);

        SharedPreferences pref = getApplicationContext().getSharedPreferences("pref", MODE_PRIVATE);

        String sms=pref.getString("msg","");

        Uri uri = Uri.parse("smsto:" + sms);
        Intent intent = new Intent(Intent.ACTION_SENDTO, uri);
        intent.putExtra("sms_body", "Accident");
        startActivity(intent);
        Toast.makeText(getApplication(),"sent",Toast.LENGTH_LONG).show();
    }


        public void onBackPressed(){
            AlertDialog.Builder alert=new AlertDialog.Builder(home.this);
            alert.setMessage("Do you want to exit?").setCancelable(false).setPositiveButton("Yes",new DialogInterface.OnClickListener() {

                @Override
                public void onClick(DialogInterface dialog, int which) {
                    // TODO Auto-generated method stub
                    finishAffinity();
                }
            }).setNegativeButton("No",new DialogInterface.OnClickListener() {

                @Override
                public void onClick(DialogInterface dialog, int which) {
                    // TODO Auto-generated method stub
                    dialog.cancel();
                }
            });
            AlertDialog al=alert.create();
            al.setTitle("Exit");
            al.show();
            return;
        }

    @Override
    public void onLocationChanged(Location location) {

        Double longitudes = location.getLongitude();
        longitude =  Double.toString(longitudes);
        Log.e("longitude_value", longitude);

        Double latitudes = location.getLatitude();
        latitude = Double.toString(latitudes);
        Log.e("latiude_value", latitude);

        nearhospitals1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                Intent intent= new Intent(home.this,near_hsptl.class);

                SharedPreferences pref=getApplicationContext().getSharedPreferences("pref",MODE_PRIVATE);
                SharedPreferences.Editor editor=pref.edit();

                editor.putString("current_longitude", longitude);
                editor.putString("current_latitude", latitude);
                editor.apply();

                startActivity(intent);


            }
        });


    }

public  void nearpol(View view){
    nearpolice=(TextView)findViewById(R.id.nearpolicestatn1);
    //Intent intent= new Intent(home.this,near_police.class);
    SharedPreferences pref=getApplicationContext().getSharedPreferences("pref",MODE_PRIVATE);
    SharedPreferences.Editor editor=pref.edit();
    editor.putString("current_longitude", longitude);
    editor.putString("current_latitude", latitude);
    editor.apply();
    Intent intent= new Intent(home.this,near_police.class);
    startActivity(intent);


}
    public  void allhsp(View view){
        allhspt=(TextView)findViewById(R.id.allhsptl1);
        Intent intent= new Intent(home.this,all_hsptl.class);
        startActivity(intent);

    }
    public  void allpoli(View view){
        allpoli=(TextView)findViewById(R.id.allpolice1);
        Intent intent= new Intent(home.this,all_police.class);
        startActivity(intent);

    }
    public  void Bld(View view){
        allpoli=(TextView)findViewById(R.id.allpolice1);
        Intent intent= new Intent(home.this,blood.class);

        startActivity(intent);

    }
    @Override
    public void onStatusChanged(String s, int i, Bundle bundle) {

    }

    @Override
    public void onProviderEnabled(String s) {

    }

    @Override
    public void onProviderDisabled(String s) {

    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.opt, 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();

        if (id == R.id.action_settings){
            Intent intent= new Intent(home.this,view_profile.class);

            startActivity(intent);
        }
        else if(id==R.id.up){
            Intent intent= new Intent(home.this,updt_profile.class);

            startActivity(intent);
        }
        else  if(id==R.id.pswd){
            Intent intent= new Intent(home.this,updt_pswd.class);

            startActivity(intent);
        }

        else  if(id==R.id.logout){
           finishAffinity();
        }
        return super.onOptionsItemSelected(item);
    }

}
Home.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#9e9e9e"
    android:id="@+id/rl"
    >


    <Button
        android:text="Alert police"
        android:textColor="#FFFFFF"
        android:textStyle="bold"
        android:textSize="20dp"
        android:layout_width="182dp"
        android:layout_height="70dp"
        android:layout_marginTop="5dp"
        android:background="#EF5350"

        android:layout_marginLeft="5dp"
        android:id="@+id/button_alert"
        style="@android:style/Widget.Button.Small"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_alignParentTop="true" />


    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="190dp"
        android:orientation="vertical"
        android:layout_marginTop="5dp"
        android:background="@mipmap/download"
        android:layout_below="@+id/button_alert"
        android:layout_marginRight="5dp"
        android:layout_marginLeft="5dp"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true">


        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="ALL HOSPITALS"
            android:layout_marginLeft="65dp"
            android:id="@+id/allhsptl1"
            android:onClick="allhsp"
            android:layout_marginTop="20dp"
            android:textSize="25dp"
            android:textStyle="bold"
            android:textColor="#f44336"/>


        <Button
            android:id="@+id/nearhospitals1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="60dp"
            android:layout_marginTop="20dp"
            android:text="Near Hospitals"
            android:textColor="#f44336"
            android:textSize="25dp"
            android:textStyle="bold"
            android:clickable="true"/>

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="BLOOD DONORS"
            android:onClick="Bld"
            android:id="@+id/Blood_donors"
            android:layout_marginLeft="60dp"
            android:layout_marginTop="15dp"
            android:textSize="25dp"
            android:textStyle="bold"
            android:textColor="#f44336"/>
    </LinearLayout>

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="210dp"
        android:layout_marginRight="5dp"
        android:layout_marginLeft="5dp"
        android:orientation="vertical"
        android:background="@mipmap/hospital"
        android:weightSum="1"
        android:layout_marginTop="5dp"
        android:layout_alignParentBottom="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true">



        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="ALL POLICE STATION"
            android:layout_marginLeft="60dp"
            android:onClick="allpoli"
            android:layout_marginTop="20dp"
            android:id="@+id/allpolice1"
            android:textSize="25dp"
            android:textStyle="bold"
            android:textColor="#f44336"/>


        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="NEAR POLICE STATION"
            android:layout_marginLeft="40dp"
            android:onClick="nearpol"
            android:layout_marginTop="40dp"
            android:id="@+id/nearpolicestatn1"
            android:textSize="25dp"
            android:textStyle="bold"
            android:textColor="#f44336"
            android:layout_weight="5.46" />


    </LinearLayout>

    <Button
        android:text="Alert hospital"
        android:textColor="#FFFFFF"
        android:textStyle="bold"
        android:textSize="20dp"
        android:layout_width="180dp"
        android:layout_height="70dp"
        android:background="#EF5350"
android:layout_marginRight="5dp"
        android:onClick="alerthspitl"
        android:id="@+id/button_alert2"

        style="@android:style/Widget.Button.Small"
        android:layout_marginTop="5dp"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true" />
</RelativeLayout>

您正在另一个回调方法(即
onLocationChanged()
方法)内设置OnClickListener。这意味着您的onClick触发器事件依赖于另一个回调方法

因此,将
nearhospitals1.setOnClickListener实现移动到onCreate()方法内部


注意:将此作为一种实践,并开始遵循Java命名约定,这些约定建议每个类都应该以大写字母开头。

您需要在onCreate()方法中设置onClickListener您的代码应该如下所示:

protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.home);


Button nearhospitals1= (Button) findViewById(R.id.nearhospitals1);
nearhospitals1.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {

Intent intent= new Intent(home.this,near_hsptl.class);                        
startActivity(intent);

 }
});

}

@Override
public void onLocationChanged(Location location) {

SharedPreferences pref=getApplicationContext().getSharedPreferences("pref",MODE_PRIVATE);
SharedPreferences.Editor editor=pref.edit();
editor.putString("current_longitude", String.valueOf(location.getLongitude()));
editor.putString("current_latitude", String.valueOf(location.getLatitude()));
editor.apply();


}
=>您需要从onLocationChanged()方法中删除按钮单击侦听器。
=>您已经声明了两个字符串变量纬度和经度这个变量存储位置数据。当您点击按钮时,它将发送呼叫下一个活动的意图。

您是否在真实电话中尝试过..并确保坐标存在于SharedPreferences中..我能将它们正确地传递给secound活动吗?@Azhar Saeedcall nearhospitals1.setOnClickListener in oncreate方法我给出了与您相同的答案well@ALTegani我试过了真正的电话。问题已经解决,但它在logcat警告中显示警告:deg2rad()希望参数1是双精度的,字符串在/home/cIt worked man中给出。。。但是它在logcat Warning中显示警告:deg2rad()期望参数1是双精度的,第20行的/home/content/28/11535728/html/projects/contract/nearhospital.php中给出的字符串
删除经度和纬度变量。代码shlould如下@Override public void onLocationChanged(Location-Location){SharedReferences pref=getApplicationContext().GetSharedReferences(“pref”,MODE_PRIVATE);SharedReferences.Editor=pref.edit();Editor.putString(“当前经度”,String.valueOf(location.getLatitude());Editor.putString(“当前纬度”,String.valueOf(location.getLatitude());Editor.apply())}