程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如何通过 Intent 移动到下一个活动大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决如何通过 Intent 移动到下一个活动?

开发过程中遇到如何通过 Intent 移动到下一个活动的问题如何解决?下面主要结合日常开发的经验,给出你关于如何通过 Intent 移动到下一个活动的解决方法建议,希望对你解决如何通过 Intent 移动到下一个活动有所启发或帮助;

我正在尝试制作一个银行应用程序并且我正在尝试制作一个成功活动,当我尝试从 MainActivity.java 移动到 successActivity.java 时,我得到了一个空白页面。

这是我的 MainActivity.java:

package com.example.bankapp.ui;


import androID.content.Intent;
import androID.os.bundle;
import androID.vIEw.VIEw;
import androID.Widget.EditText;
import androID.Widget.RadioGroup;
import androID.Widget.Toast;

import androIDx.Annotation.Nullable;
import androIDx.appcompat.app.AppCompatActivity;

import com.example.bankapp.R;
import com.example.bankapp.data.AccountRepository;
import com.example.bankapp.databinding.ActivitymainBinding;
import com.example.bankapp.domain.bankAccount;
import com.example.bankapp.domain.successpayment;

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Locale;
import java.util.UUID;

public class MainActivity extends AppCompatActivity {

    private ActivitymainBinding binding;
    private BankAccount bankAccount;

    @OverrIDe
    protected voID onCreate(@Nullable Bundle savedInstanceStatE) {
        super.onCreate(savedInstanceStatE);
        bankAccount = new AccountRepository().getAccount();
        binding = ActivitymainBinding.inflate(getLayoutInflater());
        setContentVIEw(binding.getRoot());
        bindBankDataToRadiobuttons(bankAccount);
        bindBankDataToVIEws(bankAccount);
        binding.rbGroup.setoncheckedchangelistener(new RadioGroup.oncheckedchangelistener() {
            @OverrIDe
            public voID oncheckedChanged(RadioGroup group,int checkedID) {
                binding.bnpagar.setEnabled(true);
                if (checkedID == R.ID.rbotraCantIDad) {
                    binding.etnuevaCantIDad.setVisibility(VIEw.VISIBLE);
                    binding.ingreseCantIDad.setVisibility(VIEw.VISIBLE);
                } else {
                    binding.etnuevaCantIDad.setVisibility(VIEw.GONE);
                    binding.ingreseCantIDad.setVisibility(VIEw.GONE);
                }
            }
        });

        binding.bnpagar.setonClickListener(new VIEw.onClickListener() {
            @OverrIDe
            public voID onClick(VIEw v) {
                double amounttopay = getamounttopay();
                if (amounttopay == -1.0) {
                    showToastmessage(getString(R.String.err_cantIDadIncorrecta));
                } else if (amounttopay <= bankAccount.getAccountBalance()) {
                    successpayment successpayment = makePayment(amounttopay,bankAccount);
                    Intent intent = new Intent(getApplicationContext(),successActivity.class);
                    intent.putExtra("succesS_EXTRA",successpayment);
                    startActivity(intent);
                    finish();

                } else {
                    showToastmessage(getString(R.String.err_saldoInsuficIEntE));
                }
            }
        });
    }




    private double getamounttopay() {
        double amount;
        switch (binding.rbGroup.getcheckedRadiobuttonID()) {
            case R.ID.rbdeudaActual:
                amount = bankAccount.getCurrentDebt();
                break;
            case R.ID.rbsinInteres:
                amount = bankAccount.getMinimumPaymentDue();
                break;
            case R.ID.rbpagoMinimo:
                amount = bankAccount.getPaymentDue();
                break;
            default:
                amount = getamountFromEditText(binding.etnuevaCantIDad);
        }
        return amount;
    }

    private double getamountFromEditText(EditText editText) {
        try {
            String text = editText.getText().toString();
            return Double.parseDouble(text);
        } catch (numberFormatException E) {
            return -1.0;
        }
    }

    private voID bindBankDataToRadiobuttons(BankAccount bankAccount) {
        binding.rbdeudaActual.setText(
                getString(R.String.label_deudaActual,bankAccount.getCurrentDebt())
        );
        binding.rbsinInteres.setText(
                getString(R.String.label_sinInteres,bankAccount.getMinimumPaymentDue())
        );
        binding.rbpagoMinimo.setText(
                getString(R.String.label_pagoMinimo,bankAccount.getPaymentDue())
        );
    }

    private voID bindBankDataToVIEws(BankAccount bankAccount) {
        binding.cardlayout.tvAccountname.setText(bankAccount.getAccountname());
        //El String label_peso_sign pIDe un número,por eso el método getString recibe
        //un segundo parámetro,que en este caso es el accountBalance.
        binding.cardlayout.tvAccountBalance.setText(getString(R.String.label_peso_sign,bankAccount.getAccountBalance()));
        binding.cardlayout.tvAccountnumber.setText(bankAccount.getAccountnumber());
        binding.cardlayout.tvCardname.setText(bankAccount.getCardname());
        binding.cardlayout.tvCardnumber.setText(bankAccount.getCardnumber());
        binding.cardlayout.tvCurrentDebtamount.setText(getString(R.String.label_peso_sign,bankAccount.getCurrentDebt()));
        binding.cardlayout.tvClosingDateBalanceamount.setText(getString(R.String.label_peso_sign,bankAccount.getClosingDateBalance()));
        binding.cardlayout.tvPaymentDate.setText(bankAccount.getPaymentDueDate());
    }


    private voID showToastmessage(String messagE) {
        Toast.makeText(this,message,Toast.LENGTH_SHORT).show();
    }

    private successpayment makePayment(double amount,BankAccount bankAccount) {
        String date = new SimpleDateFormat(
                "dd 'de' MMMM 'de' yyyy",new Locale("es","MX")
        ).format(new Date(Calendar.geTinstance().getTimeInMillis()));
        String referencenumber = UUID.randomUUID().toString().subString(0,10);
        // amount -> double
        // date -> String
        // referencenumber -> String
        // bankAccount -> BankAccount
        return new successpayment(
                amount,date,referencenumber,bankAccount
        );
    }


}

这是我的 Activity_main.xml:

<?xml version="1.0" enCoding="utf-8"?>
<linearLayout xmlns:androID="http://scheR_786_11845@as.androID.com/apk/res/androID"
    androID:layout_wIDth="match_parent"
    androID:layout_height="match_parent"
    androID:orIEntation="vertical">

    <include
        androID:ID="@+ID/cardlayout"
        layout="@layout/card_layout" />

    <RadioGroup
        androID:layout_wIDth="match_parent"
        androID:layout_height="wrap_content"
        androID:ID="@+ID/rbGroup">

        <Radiobutton
            androID:ID="@+ID/rbdeudaActual"
            androID:layout_wIDth="match_parent"
            androID:layout_height="wrap_content"
            androID:layout_margintop="10dp"
            androID:layout_marginStart="10dp"
            androID:text="@String/label_deudaActual" />

        <Radiobutton
            androID:ID="@+ID/rbpagoMinimo"
            androID:layout_wIDth="match_parent"
            androID:layout_height="wrap_content"
            androID:layout_margintop="10dp"
            androID:layout_marginStart="10dp"
            androID:text="@String/label_pagoMinimo" />

        <Radiobutton
            androID:ID="@+ID/rbsinInteres"
            androID:layout_wIDth="match_parent"
            androID:layout_height="wrap_content"
            androID:layout_marginStart="10dp"
            androID:layout_margintop="10dp"
            androID:text="@String/label_sinInteres" />

        <Radiobutton
            androID:ID="@+ID/rbotraCantIDad"
            androID:layout_wIDth="match_parent"
            androID:layout_height="wrap_content"
            androID:layout_marginStart="10dp"
            androID:layout_margintop="10dp"
            androID:text="@String/label_otraCantIDad" />
        <TextVIEw
            androID:layout_wIDth="match_parent"
            androID:layout_height="wrap_content"
            androID:textcolor="@color/black"
            androID:layout_margintop="10dp"
            androID:layout_marginStart="5dp"
            androID:text="@String/label_nuevaCantIDad"
            androID:ID="@+ID/ingreseCantIDad"/>

        <EditText
            androID:ID="@+ID/etnuevaCantIDad"
            androID:layout_marginStart="5dp"
            androID:layout_wIDth="match_parent"
            androID:layout_height="wrap_content"
            androID:inputType="number"
            androID:imeOptions="actionDone">
        </EditText>

    </RadioGroup>

    <Space
        androID:ID="@+ID/espacio"
        androID:layout_wIDth="match_parent"
        androID:layout_height="0dp"
        androID:layout_weight="1" />
    <button
        androID:ID="@+ID/bnpagar"
        androID:layout_wIDth="match_parent"
        androID:layout_height="wrap_content"
        androID:text="@String/label_pagar" />

</linearLayout>

这是我的成功Activity.java:

package com.example.bankapp.ui;

import androID.os.bundle;
import androIDx.Annotation.Nullable;
import androIDx.appcompat.app.AppCompatActivity;

import com.example.bankapp.R;
import com.example.bankapp.databinding.ActivitysuccessBinding;
import com.example.bankapp.domain.successpayment;


public class successActivity extends AppCompatActivity {

    private ActivitysuccessBinding binding;



    @OverrIDe
    protected voID onCreate(@Nullable Bundle savedInstanceStatE) {
        binding = ActivitysuccessBinding.inflate(getLayoutInflater());
        setContentVIEw(binding.getRoot());
        super.onCreate(savedInstanceStatE);
        setContentVIEw(R.layout.activity_success);
        successpayment payment = geTintent().getParcelableExtra("succesS_EXTRA");
    }
}

这是我的 Activitysuccess.xml :

<?xml version="1.0" enCoding="utf-8"?>
<linearLayout xmlns:androID="http://scheR_786_11845@as.androID.com/apk/res/androID"
    xmlns:app="http://scheR_786_11845@as.androID.com/apk/res-auto"
    xmlns:tools="http://scheR_786_11845@as.androID.com/tools"
    androID:layout_wIDth="match_parent"
    androID:layout_height="match_parent"
    androID:orIEntation="vertical">

    <ImageVIEw
        androID:ID="@+ID/imageVIEw2"
        androID:layout_wIDth="match_parent"
        androID:layout_height="match_parent"
        androID:contentDescription="@String/label_current_debt"
        tools:srcCompat="@tools:sample/avatars" />
</linearLayout>

这是我的 AndroID 清单:

<?xml version="1.0" enCoding="utf-8"?>
<manifest xmlns:androID="http://scheR_786_11845@as.androID.com/apk/res/androID"
    package="com.example.bankapp">

    <application
        androID:allowBACkup="true"
        androID:icon="@mipmap/ic_launcher"
        androID:label="@String/app_name"
        androID:rounDicon="@mipmap/ic_launcher_round"
        androID:supportsRtl="true"
        androID:theme="@style/theme.bankApp">

        <activity androID:name=".ui.MainActivity">
            <intent-filter>
                <action androID:name="androID.intent.action.MAIN" />
                <category androID:name="androID.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

        <activity androID:name=".ui.successActivity" > </activity>




</application>

</manifest>

解决方法

首先我不知道你为什么要使用这种方法来膨胀布局,而不仅仅是 setContentview 方法,并将活动作为上下文添加到相应的 xml 中。

第二次尝试在 onCreate 方法中保持对 super.onCreate 的调用

@Override
protected void onCreate(@Nullable Bundle savedInstanceStatE) {
     super.onCreate(savedInstanceStatE);        

    binding = ActivitysuccessBinding.inflate(getLayoutInflater());
    setContentView(binding.getRoot());
    setContentView(R.layout.activity_success);
    successPayment payment = geTintent().getParcelableExtra("succesS_EXTRA");
}

}

大佬总结

以上是大佬教程为你收集整理的如何通过 Intent 移动到下一个活动全部内容,希望文章能够帮你解决如何通过 Intent 移动到下一个活动所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签:如何通过