Android:点击后退按钮两次?

时间:2014-12-08 14:36:35

标签: android back

我是android的初学者。

我的情景

我有一个有两个按钮的屏幕A. 按钮A. 按钮B。

当我打开应用程序界面时,A打开上面的2个按钮,当我点击按钮B时,会显示文本视图和Edittext。

我想要什么?

当按下后退按钮时,textview和edittext应该隐藏,当我再次按下时,我应退出屏幕A.

到目前为止我尝试了什么?

我的下面代码是否符合我的要求?

主要Activity.xml

import android.support.v7.app.ActionBarActivity;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class MainActivity extends Activity implements OnClickListener {

    TextView title;
    EditText userinput;
    Button buttonA,buttonB;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initialize();
    }

    private void initialize() {
        userinput = (EditText)findViewById(R.id.userinput);
        title = (TextView)findViewById(R.id.title);
        buttonA = (Button)findViewById(R.id.buttonA);
        buttonB = (Button)findViewById(R.id.buttonB);
        buttonA.setOnClickListener(this);
        buttonB.setOnClickListener(this);
    }



@Override
public void onBackPressed() {
  title.setVisibility(View.INVISIBLE);
 userinput.setVisibility(View.INVISIBLE); 


    }

    @Override
    public void onClick(View v) {

        switch(v.getId())
        {

        case R.id.buttonA:
            break;

        case R.id.buttonB:

            title.setVisibility(View.VISIBLE);
            userinput.setVisibility(View.VISIBLE);
            break;
        }


    }


}

我提到thisthis链接,但不明白。如果有人可以帮助我实现我想要1

3 个答案:

答案 0 :(得分:2)

  

按下后退按钮时,textview和edittext应隐藏   当我再次按回时,

@Override
public void onBackPressed() {
   if (title.getVisibility() != View.VISIBLE && 
             userInput.getVisibility() != View.VISIBLE) {
      super.onBackPressed();
      return;
   }
   title.setText(null);
   userinput.setText(null);
   title.setVisibility(View.INVISIBLE);
   userinput.setVisibility(View.INVISIBLE);        
 }

答案 1 :(得分:0)

这样做。

@Override
 public void onBackPressed() {
if(title.getVisibility()==View.VISIBLE)
 {
  title.setVisibility(View.INVISIBLE);
  userinput.setVisibility(View.INVISIBLE); 
 }
  else
  {
   finish();
  }
}

跳它会做你想要的。

答案 2 :(得分:0)

将代码更改为

@Override
public void onBackPressed() {
if (title.getVisibility() != View.VISIBLE && 
             userInput.getVisibility() != View.VISIBLE){
title.setVisibility(View.INVISIBLE);
userinput.setVisibility(View.INVISIBLE); 
}
super.onBackPressed();
}