如何在android中隐藏软键盘

发布于 2024-12-14 02:09:10 字数 12889 浏览 0 评论 0原文

我在我的应用程序中使用“编辑文本”字段。当我单击它时,会出现软键盘。但是当我单击“完成”按钮(位于软键盘上)时,它应该消失,但它不会消失。我将输入类型设置为布局文件中的文本。我想在按下按钮时隐藏软键盘。 请帮忙。提前致谢。

这是我的代码。

public class locupdate extends MapActivity implements OnDoubleTapListener{

    GeoPoint p,geoPoint;
    MapView SearchMap;
    List<Overlay> list;
    MapController map_controller;
    LocationManager locationManager;
    Location location,update_location ;
    MyLocationOverlay me;
    Button go_btn,done;
    String city;
    int cid;
    Double lat_update,lng_update;
    EditText location_entered;
    @Override
    public void onCreate(Bundle savedInstanceState){

        super.onCreate(savedInstanceState);
        setContentView(R.layout.bingmapupdate);
        go_btn=new Button(getApplicationContext());
        go_btn=(Button)findViewById(R.id.go_button);

        location_entered=(EditText)findViewById(R.id.enterLocationforSearch); 
        location_entered.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                location_entered.setText("");

            }
        });
        done=new Button(getApplicationContext());
        done=(Button)findViewById(R.id.button_locationUpdateDone);
        done.setEnabled(false);
        done.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
                SharedPreferences.Editor editor=preferences.edit();
                String memberid=preferences.getString("unique_userName", null);

                String lat=Double.toString(lat_update);
                String lang=Double.toString(lng_update);
                editor.putString(memberid+"LATITUDE",lat);
                editor.putString(memberid+"LONGITUDE",lang);
                //editor.putLong(memberid+"LATITUDE",lat_update);
                //editor.putLong(memberid+"LONGITUDE",lng_update);

                editor.commit();
                //editor.putString("Location", update_location);

                //update the "lat_update" , "lng_update" and "update_location" with UID(cell_id)

                Intent i=new Intent();
                i.setClassName("some pkg name here", "some activity name here");
                startActivity(i);

                finish();

            }
        });

        SearchMap= (MapView)findViewById(R.id.View_map);
        //SearchMap.setTraffic(true);
        SearchMap.setBuiltInZoomControls(true);
        map_controller=SearchMap.getController();
        SearchMap.setClickable(false);
        map_controller.setZoom(10);

        MapOverlay mapOverlay = new MapOverlay();
        List<Overlay> listOfOverlays = SearchMap.getOverlays();
        listOfOverlays.clear();
        listOfOverlays.add(mapOverlay);     
        locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
        location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
        geoPoint=new GeoPoint((int)(location.getLatitude()*1e6),(int)(location.getLongitude()*1e6));
        p=geoPoint;

        // map_controller.animateTo(geoPoint);

        // SearchMap.invalidate();

        go_btn.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                location_entered=new EditText(getApplicationContext());
                location_entered=(EditText)findViewById(R.id.enterLocationforSearch);

                String area=location_entered.getText().toString();
                BingMapLocationUpdateActivity.this.changeMap(area);
                SearchMap.setClickable(true);

            }
        });

    }

    protected class MapOverlay extends com.google.android.maps.Overlay {
        @Override
        public boolean draw(Canvas canvas,MapView map,boolean shadow,long when){

            p=geoPoint;
            //map_controller.animateTo(geoPoint);
            Paint paint=new Paint();
            super.draw(canvas, map, shadow);
            Point myScreenCoords = new Point();
            map.getProjection().toPixels(p, myScreenCoords);
            paint.setStrokeWidth(1);
            paint.setARGB(255, 255, 255, 255);
            paint.setStyle(Paint.Style.STROKE);
            Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.drawable.marker);
            canvas.drawBitmap(bmp, myScreenCoords.x, myScreenCoords.y, paint);
            canvas.drawText("I am here...", myScreenCoords.x, myScreenCoords.y, paint);
            return true;
        }
        @Override
        public boolean onTouchEvent(MotionEvent event,MapView SearchMap)
        {   
            //Toast.makeText(BingMapLocationUpdateActivity.this,
            //  "Touch Event Listener called",
            //  Toast.LENGTH_SHORT).show();

            SearchMap.setClickable(true);

            drawMarker(event);
            done.setEnabled(true);

            return false;
        }

    }/*--------------------------------------end of overlay class------------------------------------*/
    @Override
    protected boolean isRouteDisplayed() {
        // TODO Auto-generated method stub
        return false;
    }
    @Override
    protected void onDestroy() {
        super.onStop();
    }
    @Override
    public boolean onDoubleTap(MotionEvent event) {
        drawMarker(event);
        Toast.makeText(BingMapLocationUpdateActivity.this,
                "onDoubleTap called",
                Toast.LENGTH_LONG).show();
        return false;
    }
    @Override
    public boolean onDoubleTapEvent(MotionEvent event) {
        drawMarker(event);
        Toast.makeText(BingMapLocationUpdateActivity.this,
                "onDoubleTapEvent called",
                Toast.LENGTH_LONG).show();

        return false;
    }
    @Override
    public boolean onSingleTapConfirmed(MotionEvent event) {
        // TODO Auto-generated method stub

        drawMarker(event);
        Toast.makeText(BingMapLocationUpdateActivity.this,
                "Single Tap Event Listener called",
                Toast.LENGTH_LONG).show();
        return false;
    }
    /*-------------------------------------------get clicked location and draw marker---------------------------*/
    public void drawMarker(MotionEvent event){
        GeoPoint p = SearchMap.getProjection().fromPixels((int) event.getX(),(int) event.getY());
        //Toast.makeText(getBaseContext(),p.getLatitudeE6() / 1E6 + "," +p.getLongitudeE6() /1E6 ,Toast.LENGTH_SHORT).show();
        /*save these latitude and longitude*/
        lat_update=p.getLatitudeE6() / 1E6;
        lng_update=p.getLongitudeE6() /1E6;

        //lat_update=(long)(p.getLatitudeE6() / 1E6);
        //lng_update=(long)(p.getLongitudeE6() /1E6);

        int X = (int)event.getX();          
        int Y = (int)event.getY();
        geoPoint = SearchMap.getProjection().fromPixels(X, Y);
        //map_controller.animateTo(geoPoint);

        //int lac = cellLocation.getLac();


        // me = new MyLocationOverlay(getApplicationContext(), SearchMap);
        getLocationName(p);

    }
    /*-----------------------------------getLocationName method----------------------------------------*/
    public void getLocationName(GeoPoint point_city){
        float latitude = point_city.getLatitudeE6() / 1000000F;
        float longitude = point_city.getLongitudeE6() / 1000000F;

        location.setLatitude(latitude);
        location.setLongitude(longitude);

        Geocoder gcd = new Geocoder(this,Locale.getDefault()) ;
        List<Address> addresses = null;
        try {
            addresses = gcd.getFromLocation(point_city.getLatitudeE6() / 1E6 , point_city.getLongitudeE6() /1E6, 1);
            //addresses = gcd.getFromLocation(latitude,longitude,5);
            if (addresses.size() > 0) 
                city=addresses.get(0).getAddressLine(0);
            String state=addresses.get(0).getAddressLine(1);
            String country=addresses.get(0).getAddressLine(2);
            String sb;
            sb=city+""+state+""+country;
            //Toast.makeText(getApplicationContext(),sb,Toast.LENGTH_SHORT).show();


        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        location_entered.setText(city);
        /*save city in shared preferences*/
        SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
        SharedPreferences.Editor editor=preferences.edit();
        editor.putString("city",city);
        editor.commit();

    }

    /*-------------------------------------------Change Map Method---------------------------------------*/

    public void changeMap(String area)
    {

        GeoPoint myLocation=null;

        double lat = 0;
        double lng = 0;
        try
        {

            Geocoder g = new Geocoder(this, Locale.getDefault());

            List<Address> result=g.getFromLocationName(area,5);
            if(result.size()>0){

                //Toast.makeText(BingMapLocationUpdateActivity.this, "country: " + String.valueOf(result.get(0).getCountryName()), Toast.LENGTH_SHORT).show();

                lat = result.get(0).getLatitude();
                lng = result.get(0).getLongitude();
                myLocation=new GeoPoint((int)(lat*1e6),(int)(lng*1e6));
                map_controller.animateTo(myLocation);

            }            
            else{
                Toast.makeText(BingMapLocationUpdateActivity.this, "record not found", Toast.LENGTH_SHORT).show();
                return;
            }
        }
        catch(IOException io)
        {
            Toast.makeText(BingMapLocationUpdateActivity.this, "Connection Error", Toast.LENGTH_SHORT).show();
        }

        //Drawable drawable = this.getResources().getDrawable(R.drawable.androidmarker);

        map_controller.setZoom(12);
        //SearchMap.invalidate();
    }


}

我的布局文件

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/relativeLayout1"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@drawable/bg"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/bingmapupdate_label"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="true"
        android:background="#FFFFFF"
        android:text="Google Maps"
        android:textColor="#ff000000" >
    </TextView>

    <EditText
        android:id="@+id/enterLocationforSearch"
        android:layout_width="170dp"
        android:layout_height="wrap_content"
        android:layout_below="@+id/bingmapupdate_label"
        android:layout_marginTop="30dp"
        android:layout_toLeftOf="@+id/go_button"
        android:layout_toRightOf="@+id/enterLocation_label"
        android:inputType="text"
        android:singleLine="true"
        android:text="search" >
    </EditText>

    <com.google.android.maps.MapView
        android:id="@+id/View_map"
        android:layout_width="fill_parent"
        android:layout_height="250dp"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/enterLocationforSearch"
        android:apiKey="GOOGLE_API_KEY" >
    </com.google.android.maps.MapView>

    <Button
        android:id="@+id/go_button"
        android:layout_width="50dp"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/enterLocationforSearch"
        android:layout_alignBottom="@+id/enterLocationforSearch"
        android:layout_alignParentRight="true"
        android:background="@drawable/btn_ng"
        android:text="Go" >
    </Button>

    <Button
        android:id="@+id/button_locationUpdateDone"
        android:layout_width="wrap_content"
        android:layout_height="25dp"
        android:layout_alignParentBottom="true"
        android:layout_alignParentRight="true"
        android:background="@drawable/btn_ng"
        android:text="DONE" >
    </Button>

    <TextView
        android:id="@+id/enterLocation_label"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/enterLocationforSearch"
        android:layout_alignBottom="@+id/enterLocationforSearch"
        android:layout_marginLeft="20dp"
        android:text="Enter City"
        android:textColor="#111111" >
    </TextView>

</RelativeLayout>

I am using the Edit Text field in my application. when i click on it the soft keyboard appears.but when i click on the "DONE" button (which is on soft keyboard ),it should be disappear but it does not disappear.i set the input type as text in the layout file.I want to hide the soft keyboard when i press button.
please help.Thanks in advance.

Here is my code.

public class locupdate extends MapActivity implements OnDoubleTapListener{

    GeoPoint p,geoPoint;
    MapView SearchMap;
    List<Overlay> list;
    MapController map_controller;
    LocationManager locationManager;
    Location location,update_location ;
    MyLocationOverlay me;
    Button go_btn,done;
    String city;
    int cid;
    Double lat_update,lng_update;
    EditText location_entered;
    @Override
    public void onCreate(Bundle savedInstanceState){

        super.onCreate(savedInstanceState);
        setContentView(R.layout.bingmapupdate);
        go_btn=new Button(getApplicationContext());
        go_btn=(Button)findViewById(R.id.go_button);

        location_entered=(EditText)findViewById(R.id.enterLocationforSearch); 
        location_entered.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                location_entered.setText("");

            }
        });
        done=new Button(getApplicationContext());
        done=(Button)findViewById(R.id.button_locationUpdateDone);
        done.setEnabled(false);
        done.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
                SharedPreferences.Editor editor=preferences.edit();
                String memberid=preferences.getString("unique_userName", null);

                String lat=Double.toString(lat_update);
                String lang=Double.toString(lng_update);
                editor.putString(memberid+"LATITUDE",lat);
                editor.putString(memberid+"LONGITUDE",lang);
                //editor.putLong(memberid+"LATITUDE",lat_update);
                //editor.putLong(memberid+"LONGITUDE",lng_update);

                editor.commit();
                //editor.putString("Location", update_location);

                //update the "lat_update" , "lng_update" and "update_location" with UID(cell_id)

                Intent i=new Intent();
                i.setClassName("some pkg name here", "some activity name here");
                startActivity(i);

                finish();

            }
        });

        SearchMap= (MapView)findViewById(R.id.View_map);
        //SearchMap.setTraffic(true);
        SearchMap.setBuiltInZoomControls(true);
        map_controller=SearchMap.getController();
        SearchMap.setClickable(false);
        map_controller.setZoom(10);

        MapOverlay mapOverlay = new MapOverlay();
        List<Overlay> listOfOverlays = SearchMap.getOverlays();
        listOfOverlays.clear();
        listOfOverlays.add(mapOverlay);     
        locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
        location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
        geoPoint=new GeoPoint((int)(location.getLatitude()*1e6),(int)(location.getLongitude()*1e6));
        p=geoPoint;

        // map_controller.animateTo(geoPoint);

        // SearchMap.invalidate();

        go_btn.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                location_entered=new EditText(getApplicationContext());
                location_entered=(EditText)findViewById(R.id.enterLocationforSearch);

                String area=location_entered.getText().toString();
                BingMapLocationUpdateActivity.this.changeMap(area);
                SearchMap.setClickable(true);

            }
        });

    }

    protected class MapOverlay extends com.google.android.maps.Overlay {
        @Override
        public boolean draw(Canvas canvas,MapView map,boolean shadow,long when){

            p=geoPoint;
            //map_controller.animateTo(geoPoint);
            Paint paint=new Paint();
            super.draw(canvas, map, shadow);
            Point myScreenCoords = new Point();
            map.getProjection().toPixels(p, myScreenCoords);
            paint.setStrokeWidth(1);
            paint.setARGB(255, 255, 255, 255);
            paint.setStyle(Paint.Style.STROKE);
            Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.drawable.marker);
            canvas.drawBitmap(bmp, myScreenCoords.x, myScreenCoords.y, paint);
            canvas.drawText("I am here...", myScreenCoords.x, myScreenCoords.y, paint);
            return true;
        }
        @Override
        public boolean onTouchEvent(MotionEvent event,MapView SearchMap)
        {   
            //Toast.makeText(BingMapLocationUpdateActivity.this,
            //  "Touch Event Listener called",
            //  Toast.LENGTH_SHORT).show();

            SearchMap.setClickable(true);

            drawMarker(event);
            done.setEnabled(true);

            return false;
        }

    }/*--------------------------------------end of overlay class------------------------------------*/
    @Override
    protected boolean isRouteDisplayed() {
        // TODO Auto-generated method stub
        return false;
    }
    @Override
    protected void onDestroy() {
        super.onStop();
    }
    @Override
    public boolean onDoubleTap(MotionEvent event) {
        drawMarker(event);
        Toast.makeText(BingMapLocationUpdateActivity.this,
                "onDoubleTap called",
                Toast.LENGTH_LONG).show();
        return false;
    }
    @Override
    public boolean onDoubleTapEvent(MotionEvent event) {
        drawMarker(event);
        Toast.makeText(BingMapLocationUpdateActivity.this,
                "onDoubleTapEvent called",
                Toast.LENGTH_LONG).show();

        return false;
    }
    @Override
    public boolean onSingleTapConfirmed(MotionEvent event) {
        // TODO Auto-generated method stub

        drawMarker(event);
        Toast.makeText(BingMapLocationUpdateActivity.this,
                "Single Tap Event Listener called",
                Toast.LENGTH_LONG).show();
        return false;
    }
    /*-------------------------------------------get clicked location and draw marker---------------------------*/
    public void drawMarker(MotionEvent event){
        GeoPoint p = SearchMap.getProjection().fromPixels((int) event.getX(),(int) event.getY());
        //Toast.makeText(getBaseContext(),p.getLatitudeE6() / 1E6 + "," +p.getLongitudeE6() /1E6 ,Toast.LENGTH_SHORT).show();
        /*save these latitude and longitude*/
        lat_update=p.getLatitudeE6() / 1E6;
        lng_update=p.getLongitudeE6() /1E6;

        //lat_update=(long)(p.getLatitudeE6() / 1E6);
        //lng_update=(long)(p.getLongitudeE6() /1E6);

        int X = (int)event.getX();          
        int Y = (int)event.getY();
        geoPoint = SearchMap.getProjection().fromPixels(X, Y);
        //map_controller.animateTo(geoPoint);

        //int lac = cellLocation.getLac();


        // me = new MyLocationOverlay(getApplicationContext(), SearchMap);
        getLocationName(p);

    }
    /*-----------------------------------getLocationName method----------------------------------------*/
    public void getLocationName(GeoPoint point_city){
        float latitude = point_city.getLatitudeE6() / 1000000F;
        float longitude = point_city.getLongitudeE6() / 1000000F;

        location.setLatitude(latitude);
        location.setLongitude(longitude);

        Geocoder gcd = new Geocoder(this,Locale.getDefault()) ;
        List<Address> addresses = null;
        try {
            addresses = gcd.getFromLocation(point_city.getLatitudeE6() / 1E6 , point_city.getLongitudeE6() /1E6, 1);
            //addresses = gcd.getFromLocation(latitude,longitude,5);
            if (addresses.size() > 0) 
                city=addresses.get(0).getAddressLine(0);
            String state=addresses.get(0).getAddressLine(1);
            String country=addresses.get(0).getAddressLine(2);
            String sb;
            sb=city+""+state+""+country;
            //Toast.makeText(getApplicationContext(),sb,Toast.LENGTH_SHORT).show();


        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        location_entered.setText(city);
        /*save city in shared preferences*/
        SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
        SharedPreferences.Editor editor=preferences.edit();
        editor.putString("city",city);
        editor.commit();

    }

    /*-------------------------------------------Change Map Method---------------------------------------*/

    public void changeMap(String area)
    {

        GeoPoint myLocation=null;

        double lat = 0;
        double lng = 0;
        try
        {

            Geocoder g = new Geocoder(this, Locale.getDefault());

            List<Address> result=g.getFromLocationName(area,5);
            if(result.size()>0){

                //Toast.makeText(BingMapLocationUpdateActivity.this, "country: " + String.valueOf(result.get(0).getCountryName()), Toast.LENGTH_SHORT).show();

                lat = result.get(0).getLatitude();
                lng = result.get(0).getLongitude();
                myLocation=new GeoPoint((int)(lat*1e6),(int)(lng*1e6));
                map_controller.animateTo(myLocation);

            }            
            else{
                Toast.makeText(BingMapLocationUpdateActivity.this, "record not found", Toast.LENGTH_SHORT).show();
                return;
            }
        }
        catch(IOException io)
        {
            Toast.makeText(BingMapLocationUpdateActivity.this, "Connection Error", Toast.LENGTH_SHORT).show();
        }

        //Drawable drawable = this.getResources().getDrawable(R.drawable.androidmarker);

        map_controller.setZoom(12);
        //SearchMap.invalidate();
    }


}

my layout file

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/relativeLayout1"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@drawable/bg"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/bingmapupdate_label"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="true"
        android:background="#FFFFFF"
        android:text="Google Maps"
        android:textColor="#ff000000" >
    </TextView>

    <EditText
        android:id="@+id/enterLocationforSearch"
        android:layout_width="170dp"
        android:layout_height="wrap_content"
        android:layout_below="@+id/bingmapupdate_label"
        android:layout_marginTop="30dp"
        android:layout_toLeftOf="@+id/go_button"
        android:layout_toRightOf="@+id/enterLocation_label"
        android:inputType="text"
        android:singleLine="true"
        android:text="search" >
    </EditText>

    <com.google.android.maps.MapView
        android:id="@+id/View_map"
        android:layout_width="fill_parent"
        android:layout_height="250dp"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/enterLocationforSearch"
        android:apiKey="GOOGLE_API_KEY" >
    </com.google.android.maps.MapView>

    <Button
        android:id="@+id/go_button"
        android:layout_width="50dp"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/enterLocationforSearch"
        android:layout_alignBottom="@+id/enterLocationforSearch"
        android:layout_alignParentRight="true"
        android:background="@drawable/btn_ng"
        android:text="Go" >
    </Button>

    <Button
        android:id="@+id/button_locationUpdateDone"
        android:layout_width="wrap_content"
        android:layout_height="25dp"
        android:layout_alignParentBottom="true"
        android:layout_alignParentRight="true"
        android:background="@drawable/btn_ng"
        android:text="DONE" >
    </Button>

    <TextView
        android:id="@+id/enterLocation_label"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/enterLocationforSearch"
        android:layout_alignBottom="@+id/enterLocationforSearch"
        android:layout_marginLeft="20dp"
        android:text="Enter City"
        android:textColor="#111111" >
    </TextView>

</RelativeLayout>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

尐籹人 2024-12-21 02:09:10

我使用这个函数:

public static void hideSoftInput(Context ctx)
{
    InputMethodManager inputManager = (InputMethodManager) ctx.getSystemService(INPUT_METHOD_SERVICE);
    inputManager.hideSoftInputFromWindow(new View(ctx).getWindowToken(), 0);
}

对于您的特定情况,您可以使用这个:

    location_entered.setOnKeyListener(new View.OnKeyListener() 
    {
        @Override
        public boolean onKey(View v, int keyCode, KeyEvent event) 
        {
            if (event.getKeyCode() == KeyEvent.KEYCODE_ENTER)
            {
                // code to hide the soft keyboard
                InputMethodManager imm = (InputMethodManager) getSystemService(
                    Context.INPUT_METHOD_SERVICE);
                imm.hideSoftInputFromWindow(v.getApplicationWindowToken(), 0);
            }
            return false;
        }
    });

在您的 onCreate 上的这部分之后:

  location_entered.setOnClickListener(new View.OnClickListener() {
  [...]

I use this function:

public static void hideSoftInput(Context ctx)
{
    InputMethodManager inputManager = (InputMethodManager) ctx.getSystemService(INPUT_METHOD_SERVICE);
    inputManager.hideSoftInputFromWindow(new View(ctx).getWindowToken(), 0);
}

For your particular case, you can use this:

    location_entered.setOnKeyListener(new View.OnKeyListener() 
    {
        @Override
        public boolean onKey(View v, int keyCode, KeyEvent event) 
        {
            if (event.getKeyCode() == KeyEvent.KEYCODE_ENTER)
            {
                // code to hide the soft keyboard
                InputMethodManager imm = (InputMethodManager) getSystemService(
                    Context.INPUT_METHOD_SERVICE);
                imm.hideSoftInputFromWindow(v.getApplicationWindowToken(), 0);
            }
            return false;
        }
    });

after this part on your onCreate:

  location_entered.setOnClickListener(new View.OnClickListener() {
  [...]
凹づ凸ル 2024-12-21 02:09:10

简单的方法来做到这一点...

      getWindow().setSoftInputMode(
      WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);

Easy way to do this...

      getWindow().setSoftInputMode(
      WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文