单击按钮时没有任何反应

时间:2018-04-07 10:47:47

标签: android

运行应用程序后,主页中的一个按钮无法正常工作。当我点击在医院附近' (附近医院1)没有任何反应。这个按钮被链接到另一个页面,该页面显示使用位置服务的附近医院。程序中没有错误。有没有人看到我放错位置或犯了错误的东西?

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>

2 个答案:

答案 0 :(得分:2)

您需要在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();


}

=&gt;您需要从onLocationChanged()方法中删除按钮单击侦听器。 =&gt;您已声明两个字符串变量纬度和经度此变量商店位置数据。当您点击按钮时,它会发送意图来调用下一个活动。

答案 1 :(得分:1)

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

因此,将您的nearhospitals1.setOnClickListener实施移到您的onCreate()方法中。

注意:以此为例,开始遵循Java命名约定,建议每个类都应以大写字母开头。