Android:双击返回按钮是什么意思?

3

我是Android的初学者。

我的情景

我有一个名为A的屏幕,上面有两个按钮: 按钮A 按钮B。

当我打开我的应用程序时,屏幕A会显示出上述两个按钮,当我点击按钮B时,会显示一个文本视图和编辑文本。

我想要什么?

当按下返回按钮时,文本视图和编辑文本应该隐藏,再次按下返回按钮时,我应该退出A屏幕。

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

以下代码是否正确实现我所需的功能?

Main 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;
        }


    }


}

我参考了这个链接这个链接,但是并没有完全理解。如果有人能帮助我实现我想要的1,我会非常感激。


1
如果您需要我的 XML 代码,请告诉我。 - user4332288
1
你能不能只添加一个布尔值? 当你隐藏字段时,将fieldshidden设置为true。 然后在onBackPressed中,如果fieldshidden为真,则执行bla bla。 - Bart Hofma
@Bart Hofma:是的,你的解决方案是解决这个问题最简单的方法。 - Rahul Patidar
@OP:如果您正在使用Fragments,那么您可以将titleuserinput添加到一个Fragment中。当您使该片段可见时,将该事务添加到后退堆栈中,您想要实现的效果就会像魔术一样工作! - Shishir Gupta
3个回答

3
当按下返回按钮时,文本视图和编辑框应该隐藏,并且当我再次按下返回按钮时,它们应该继续保持隐藏状态。
@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);        
 }

0

像这样做。

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

希望它能做你想要的事情。

0

将代码更改为以下内容

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接