Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在onCreate方法中调用自定义活动_Java_Android_Android Studio_Dialog_Custom Activity - Fatal编程技术网

Java 如何在onCreate方法中调用自定义活动

Java 如何在onCreate方法中调用自定义活动,java,android,android-studio,dialog,custom-activity,Java,Android,Android Studio,Dialog,Custom Activity,我正在开发一个简单的应用程序,它有两个活动:MainActivity和SecondActivity,以及一个扩展对话框的透明CustomActivity。这个 MainActivity有两个按钮(Yes\u按钮和No\u按钮) 当用户单击“是”按钮时,第二个活动将通过Intent和 客户活动将在它前面 当用户单击No_按钮时也会调用SecondActivity,但不会同时调用CustomActivity CustomActivity的调用基于if-else语句表达式。CustomActi

我正在开发一个简单的应用程序,它有两个活动:MainActivity和SecondActivity,以及一个扩展对话框的透明CustomActivity。这个 MainActivity有两个按钮(
Yes\u按钮
No\u按钮

  • 当用户单击“是”按钮时,第二个活动将通过Intent和 客户活动将在它前面

  • 当用户单击
    No_按钮时
    也会调用SecondActivity,但不会同时调用CustomActivity

CustomActivity的调用基于if-else语句表达式。CustomActivity有一个跳过按钮,单击时CustomActivity将关闭,只有这样用户才能访问SecondActivity。SecondActivity只有一个按钮调用MainActivity,循环继续

问题

当应用程序启动且用户单击
No_按钮时,将调用第二个活动,而不调用CustomActivity(如预期!),但一旦用户
单击
Yes\u按钮
,即使单击
No\u按钮
,第二个活动仍将与CustomActivity一起显示

期望值

我希望每次单击
Yes\u按钮
时,在CustomActivity旁边调用SecondActivity,并且每次单击
No\u按钮
时,只调用SecondActivity

activity_main.xml

activity_second_activity.xml

activity\u custom\u activity.xml

checking.xml


在Android中,要将数据从一个活动传递到另一个活动,不需要声明静态变量(
getNumber
在MainActivity中),应该使用Intent并捆绑在一起。请参阅下面的解决方案

MainActivity.java

SecondActivity.java


请用两个“```”字来包装代码!这对我有用。我已经试着解决这个问题好几个星期了,但是没有用。我真的很感激你帮助了我。你能给我解释一下这行代码吗?int input=v.getId()==R.id.button1?1:0; 尤其是这个?1:0这是代码的较短版本。如果单击按钮的id为R.id.button1,则返回1,否则(R.id.buttonB2)返回0。最后将值赋给输入变量。我如何通过三个按钮实现这一点。我试过这样做,但不起作用。在MainActivity button1中,button2和button3 int input2=v.getId()=R.id.button1?1:0; int input2=v.getId()==R.id.button1?2:0; 意向确定=新意向(主、本、二级);ok.putExtra(“input1”,input1);ok.putExtra(“input2”,input2);星触觉(ok);在第二个活动中,int Input1=getIntent().getIntExtra(“Input1”,0);int Input2=getIntent().getIntExtra(“Input2”,0);if(input1==1){custom.show();}else if(input2==2){custom.Cancel();}else{Do other things}int input=0;在第二个活动中,如果(v.getId()==R.id.button1){input=1;}否则如果(v.getId()==R.id.button2){input=2;}否则{input=3;}如果input=1,则单击按钮1。如果输入=2,则单击按钮2。如果输入=3,则单击按钮3。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    xml:toos="http://schemas.android.com/tools">

    <TextView
        android:id="@+id/text"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/text" />

    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/button1" />

</RelativeLayout>
public class MainActivity extends BaseActivity implements View.OnClickListener {

    private static int getNumber;
    Button Yes_button;
    Button No_button;

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

        Yes_button = findViewById(R.id.button1);
        No_button = findViewById(R.id.button2);
        Yes_button.setOnClickListener(this);
        No_button.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.button1:
                int get_input = 1;  // will be use in if else statement.
                getNumber = get_input;
                Intent intent = new Intent(MainActivity.this, SecondActivity.class);
                startActivity(intent);
                break;
            case R.id.button2:
                Intent intent2 = new Intent(MainActivity.this, SecondActivity.class);
                startActivity(intent2);
                break;

        }
    }

    public static int get_Logic() {
        return getNumber;
    }
}
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    xml:toos="http://schemas.android.com/tools">

    <TextView
        android:id="@+id/text"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/text"
        android:onClick="Click"
        android:text="Click" />

</RelativeLayout>
public class SecondActivity extends AppCompatActivity {

    private static int output;

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_second_activity);
        int received = MainActivity.get_Logic();
        output = received;
        Display();
    }

    public final void Display() {
        if (output == 1) {
            CustomActivity custom = new CustomActivity(SecondActivity.this);
            custom.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
            custom.show();
        } else {
            CustomActivity custom = new CustomActivity(SecondActivity.this);
            custom.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
            custom.cancel();
        }

    }

    public void Click(View view) {
        Intent intent = new Intent(SecondActivity.this, MainActivity.class);
        startActivity(intent);
    }
}
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="180dp"
    android:layout_height="250dp"
    xml:toos="http://schemas.android.com/tools">

    <TextView
        android:id="@+id/text"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

    <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/text"
        android:text="Skip" />

</RelativeLayout>
class CustomActivity extends Dialog {

    Button SkipButton;
    private Activity main;

    public CustomActivity(Activity constr) {
        super(constr);
        this.main = constr;
    }

    @Override
    protected void onCreate(Bundle saveInstanceState) {
        super.onCreate(saveInstanceState);
        setCancelable(false);
        setContentView(R.layout.activity_custom_activity);
        SkipButton = findViewById(R.id.button);
        SkipButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                dismiss();
            }
        });
    }
}
<?XML version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape>
            <solid android:color="#FFFF" />
            <corners android:radius="20dp" />
            <stroke android:width="4dp" android:color="@color/colorPrimary" />
            <gradient />
        </shape>
    </item>
</selector>
public class MainActivity extends BaseActivity implements View.OnClickListener {

    Button Yes_button;
    Button No_button;

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

        Yes_button = findViewById(R.id.button1);
        No_button = findViewById(R.id.button2);
        Yes_button.setOnClickListener(this);
        No_button.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        int input = v.getId() == R.id.button1 ? 1 : 0;
        Intent intent = new Intent(MainActivity.this, SecondActivity.class);
        intent.putExtra("input", input);
        startActivity(intent);
    }
}
public class SecondActivity extends AppCompatActivity {
    
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_second_activity);
        Display();
    }

    public final void Display() {
        int input = getIntent().getIntExtra("input", 0);
        CustomActivity custom = new CustomActivity(SecondActivity.this);
        custom.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
        if (input == 1) {
            custom.show();
        } else {
            custom.cancel();
        }
    }

    public void Click(View view) {
        finish();
    }
}