通过捆绑到if语句 [英] Pass bundle to if-statement

查看:198
本文介绍了通过捆绑到if语句的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

活动索赔---->有2 按钮的TextView (获得总金额)

Activity Claims----> has 2 button and a textView (get the total amount)

活动PROJECT1和汽油----->有一个 EDITTEXT 和保存按钮

Activity Project1 and Petrol-----> one editText and a save button

活动声明

 button1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                AlertDialogRadio(a1);

            }
        });

        button2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                AlertDialogRadio(a2);

            }
        });

 public void AlertDialogRadio(final int k) {
         final CharSequence[] ClaimsModel = {"Project1", "Petrol"};

        AlertDialog.Builder alt_bld = new AlertDialog.Builder(getActivity());
        alt_bld.setTitle("Select a Claims");
        alt_bld.setSingleChoiceItems(ClaimsModel, -1, new DialogInterface
                .OnClickListener() {

            public void onClick(DialogInterface dialog, int item) {
                if (item == 0) {
                    Intent intent = new Intent(getActivity().getApplicationContext(), Project1.class);
                   intent.putExtra("k",k); 
                    startActivityForResult(intent, 0);
                } else if (item == 1) {
                    Intent intent = new Intent(getActivity().getApplicationContext(), Petrol.class);
                   intent.putExtra("k", k);
                    startActivityForResult(intent, 1);
                }

**无论PROJECT1或汽油,取决于...)**

** Either Project1 or Petrol, depends...)**

 public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.project);
       text= (EditText)findViewById(R.id.editText1);
        Button save=(Button)findViewById(R.id.button12);

        save.setOnClickListener(new View.OnClickListener() {
            public void onClick(View arg0) {
                Intent returnIntent = new Intent();
                l="A";
                text = text.getText().toString();
                returnIntent.putExtra("text", text);
                returnIntent.putExtra("l", l);
                final int k1 = getIntent().getExtras().getInt("k");
                returnIntent.putExtra("k1", k1);
                setResult(Activity.RESULT_OK, returnIntent);
                finish();
            }
        });

    }

    @Override
    public void onBackPressed()
    {
        Intent returnIntent = new Intent();
        setResult(Activity.RESULT_CANCELED, returnIntent);
        finish();
    }

是否有可能通过一个捆绑 if语句?我想将值传递给另一例,最终总量可达两个值。我怎样才能做到这一点?现在,我只得到了价值 BS ,而不是价值金额。我相信它需要添加一个捆绑双方 if语句 ...

Is it possible to pass a bundle to if statement? I want to pass a value to another cases and finally total up the two values. How can I achieve this? Now I only get the value as and bs, but not value amount. I do believe it need to add a bundle to both if statement...

继续Claims.java ....

 public void onActivityResult(int requestCode, int resultCode, Intent data) {
            int button = data.getIntExtra("k1", 0);  // to check which button was pressed
            long a=0;
            long as=0;
            long bs=0;
            String result;
            String result1;

            if (button == 1) {
                switch (requestCode) {
                    case 0:
                        result = data.getStringExtra("text");
                        String b = data.getStringExtra("l");
                         as=Long.parseLong(result);
                        c.setText("            " + b + "------" + "RM " + result);
                        Toast.makeText(getActivity(),as+"", Toast.LENGTH_LONG).show();
                        break;

                    case 1:
                         result = data.getStringExtra("text");
                        String b1 = data.getStringExtra("l");
                         as=Long.parseLong(result);
                        c.setText("            " + b1 + "------" + "RM " + result);
                        Toast.makeText(getActivity(),as+"", Toast.LENGTH_LONG).show();
                        break;


            }
             if(button==2)
            {
                switch (requestCode) {
                    case 0:
                        result1 = data.getStringExtra("text");
                        String b = data.getStringExtra("l");
                         bs=Long.parseLong(result1);
                        d.setText("            " + b + "------" + "RM " + result1);
                        Toast.makeText(getActivity(),bs+"", Toast.LENGTH_LONG).show();
                        break;

                    case 1:
                        result1 = data.getStringExtra("text");
                        String b1 = data.getStringExtra("l");
                         bs=Long.parseLong(result1);
                        d.setText("            " + b1 + "------" + "RM " + result1);
                        Toast.makeText(getActivity(),bs+"", Toast.LENGTH_LONG).show();
                        break;

                }

            }

      else if(requestCode==CAMERA_REQUEST_CODE)
            {

            }

            long amount=as+bs;
            Toast.makeText(getActivity(),amount+"", Toast.LENGTH_LONG).show();

我指<一个href=\"http://stackoverflow.com/questions/10901709/how-can-i-pass-a-string-value-that-has-been-created-in-an-if-statement-through\">How我可以传递一个字符串值,已在if语句中被创建,通过捆绑内的另一个if语句?但得到的答复是还不是很清楚我。

I refer How can i pass a string value, that has been created in an if statement, through a bundle inside another if statement? but the answer is quite unclear for me.

索赔的图片

![在这里输入的形象描述

的敬酒应显示1 12 13,但我得到1 12 12。这似乎是值 1 不能添加!

The toast should display 1 12 13 but I get 1 12 12. It seems like the value 1 cannot be added!

推荐答案

您应该直接存储你在你的onActivityResult在活动的变量传递的值,然后读取这些变量的吐司。

You should store the values you get passed in your onActivityResult in a variable of your Activity, and then directly read these variables for the Toast.

public class Claims{
    long a, as, bs;

    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        int button = data.getIntExtra("k1", 0);
        String result;

        if (button == 1) {
            result = data.getStringExtra("text");
            as=Long.parseLong(result);
        } else if(button==2) {
            result = data.getStringExtra("text");
            bs=Long.parseLong(result1);
        }

        long amount=as+bs;
        Toast.makeText(getActivity(),amount+"", Toast.LENGTH_LONG).show();
    }
}

您还需要根据自己的标准,虽然初始化你的价值观。

You still need to initialise your values according to your standards though.

这篇关于通过捆绑到if语句的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆