AppCompatActivity to Fragment

时间:2017-02-21 15:47:07

标签: android android-fragments fragment appcompatactivity

嗨,我希望将此代码更改为片段。这段代码的基础是AppCompatActivity,我需要改变,但我不能。

我的Mainactivity使用片段代码来显示所有页面

fragment = new FavoritesFragment();

如果我使用AppCompatActivity或更改FavoritesFragment页面Mainactivity获取错误

public class FavoritesFragment extends Fragment {


    public static TextView txt_status ;
    EditText et_amount , et_desc , et_email , et_mobile , et_mahsol ;
    Button btn_pay ;

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


        txt_status = (TextView)findViewById(R.id.txt_status);

        et_amount = (EditText)findViewById(R.id.et_amount);
        et_desc = (EditText)findViewById(R.id.et_desc);
        et_email = (EditText)findViewById(R.id.et_email);
        et_mobile = (EditText)findViewById(R.id.et_mobile);
        et_mahsol = (EditText)findViewById(R.id.et_mahsol);

        btn_pay = (Button)findViewById(R.id.btn_pay);

        btn_pay.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                if(et_amount.getText().toString().equals("") || Integer.parseInt(et_amount.getText().toString())<100){
                    Toast.makeText(MainActivity.this,"مبلغ وارد شده صحیح نمیباشد",Toast.LENGTH_LONG).show();
                }else if(et_desc.getText().toString().equals("")){
                    Toast.makeText(MainActivity.this,"وارد کردن توضیحات الزامیست !",Toast.LENGTH_LONG).show();
                }else if(et_email.getText().toString().equals("")){
                    Toast.makeText(MainActivity.this,"وارد کردن hایمیل الزامیست !",Toast.LENGTH_LONG).show();
                }else if(et_mobile.getText().toString().equals("")){
                    Toast.makeText(MainActivity.this,"وارد کردن شماره همراه الزامیست !",Toast.LENGTH_LONG).show();
                }else {
                    Intent intent = new Intent(MainActivity.this,Payment.class);
                    intent.putExtra("Amount",et_amount.getText().toString());
                    intent.putExtra("Description",et_desc.getText().toString());
                    intent.putExtra("Email",et_email.getText().toString());
                    intent.putExtra("Mobile",et_mobile.getText().toString());
                    intent.putExtra("Mahsol",et_mahsol.getText().toString());
                    startActivity(intent);
                }

            }
        });

    }
}

2 个答案:

答案 0 :(得分:0)

你必须创建一个新的片段,你不能用Fragment取代AppCompatActivity。片段和活动他们是不同的,并有不同的行为。 你最好看看这里 https://developer.android.com/guide/components/fragments.html

答案 1 :(得分:0)

片段有不同的生命周期回调,所以你需要学习,你不能总是找到准备好的代码。您应该在这里查看5分钟https://developer.android.com/guide/components/fragments.html

@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
    View rootView = inflater.inflate(R.layout.activity_main, container, false);

    txt_status = (TextView) rootView.findViewById((R.id.txt_status);

    et_amount = (EditText) rootView.findViewById(R.id.et_amount);
    et_desc = (EditText) rootView.findViewById((R.id.et_desc);
    et_email = (EditText) rootView.findViewById((R.id.et_email);
    et_mobile = (EditText) rootView.findViewById((R.id.et_mobile);
    et_mahsol = (EditText) rootView.findViewById((R.id.et_mahsol);

    btn_pay = (Button) rootView.findViewById((R.id.btn_pay);

    return rootView;
}

@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
    super.onViewCreated(view, savedInstanceState);

    btn_pay.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            if (et_amount.getText().toString().equals("") || Integer.parseInt(et_amount.getText().toString()) < 100) {
                Toast.makeText(getContext(), "مبلغ وارد شده صحیح نمیباشد", Toast.LENGTH_LONG).show();
            } else if (et_desc.getText().toString().equals("")) {
                Toast.makeText(getContext(), "وارد کردن توضیحات الزامیست !", Toast.LENGTH_LONG).show();
            } else if (et_email.getText().toString().equals("")) {
                Toast.makeText(getContext(), "وارد کردن hایمیل الزامیست !", Toast.LENGTH_LONG).show();
            } else if (et_mobile.getText().toString().equals("")) {
                Toast.makeText(getContext(), "وارد کردن شماره همراه الزامیست !", Toast.LENGTH_LONG).show();
            } else {
                Intent intent = new Intent(getContext(), Payment.class);
                intent.putExtra("Amount", et_amount.getText().toString());
                intent.putExtra("Description", et_desc.getText().toString());
                intent.putExtra("Email", et_email.getText().toString());
                intent.putExtra("Mobile", et_mobile.getText().toString());
                intent.putExtra("Mahsol", et_mahsol.getText().toString());
                startActivity(intent);
            }
        }
    });
}

您可以像这样绑定您的观点

相关问题