【问题标题】:I am getting doubts in android button clicking我对点击 android 按钮有疑问
【发布时间】:2016-11-14 09:45:37
【问题描述】:

嗨,在我的代码中,我在第一个活动中有两个活动有两个按钮一个可见另一个不可见如果我单击第一个按钮第二个按钮必须可见并且我必须在该活动上进行下一个活动如果单击有一个按钮该按钮必须是第一个活动现在第二个按钮必须显示第一个按钮必须不可见请帮助我。

mainactivity.java

package com.example.admin.mypratic;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class MainActivity extends AppCompatActivity {
    Button frst,scnd;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        frst=(Button)findViewById(R.id.firstbtn);
        scnd=(Button)findViewById(R.id.scndbtn);
        frst.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view){
                Intent intent=new Intent(MainActivity.this,Main2Activity.class);
                frst.setVisibility(View.GONE);
                scnd.setVisibility(View.VISIBLE);
                startActivity(intent);
                finish();
            }
        });
    }
}

mainactivity2.java

package com.example.admin.mypratic;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class Main2Activity extends AppCompatActivity {
Button b3;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);
        b3=(Button)findViewById(R.id.third);
        b3.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent=new Intent(getApplicationContext(),MainActivity.class);
                startActivity(intent);
            }
        });
    }
}

【问题讨论】:

  • 查看活动之间的android消息
  • 对不起,我没有得到
  • @chandu,你目前的结果是什么?当你从第二个活动回来时,你在第一个活动中得到了什么?你想看到按钮 2 而不是按钮 1?
  • 是的,我希望将第二个按钮设置为第一个按钮
  • 在 b3.setOnClickListener 的 onClick 方法中调用 finish() 而不是开始一个新的 Intent

标签: android android-layout android-fragments button android-button


【解决方案1】:

如果您想在从第二个活动返回时看到按钮 2 而不是按钮 1,则不要启动第一个活动,而是完成当前活动 (MainActivity2),并且 android 将从 Intent 堆栈中拉出第一个活动。 [此外,在第二个活动调用以保持其状态/状态后,您没有完成第一个活动]。 startActivity 重新启动您的活动,因此触发 onCreate 并加载默认布局。

所以新修改的按钮代码: 在 mainActivity1

frst.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view){
            Intent intent=new Intent(this,Main2Activity.class);
            frst.setVisibility(View.GONE);
            scnd.setVisibility(View.VISIBLE);
            startActivity(intent);
        }
    });

在第二个活动中

b3.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            finish();
        }
    });

不用说,您的按钮 2 需要有一个 onClickListener,以便在单击时可以看到按钮 1。

干杯!

【讨论】:

  • 不,如果我单击按钮 3 应用程序正在关闭,它就不起作用。如果我单击按钮 3,它希望在此活动上进行上一个活动,第二个按钮仅显示第三个按钮的状态
  • @chandu,我已经更改了您的两个按钮代码。 (用于活动 1 中的按钮 1、2)和按钮 3(用于活动 3)。
  • @chandu 请正确检查 aa_oo 解决方案。 frst.setOnClickListener impl中没有finish()。
  • 如果我们有 3 个活动将去哪里
  • 你将使用 Intent 开始另一个活动,它会去那里。如果你想保持状态,你将使用完成,如果不是,你将使用 Intent i = new Intent(.......); 重新启动你的第一个活动; @chandu
猜你喜欢
  • 2021-12-22
  • 1970-01-01
  • 2022-11-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-22
  • 2011-10-14
相关资源
最近更新 更多