添加所有选中的复选框android

时间:2016-07-09 13:05:21

标签: java android

我的xml文件

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >

<TextView
    android:id="@+id/textView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="19dp"
    android:text="Select Products"
    android:textAppearance="?android:attr/textAppearanceLarge" />

<Button
    android:id="@+id/buy"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_alignParentLeft="true"
    android:layout_marginBottom="92dp"
    android:text="Pay" />

<CheckBox
    android:id="@+id/cb1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_above="@+id/cb2"
    android:layout_centerHorizontal="true"
    android:layout_marginBottom="16dp"
    android:text="Casual Shirt - 400 Rs" />

<CheckBox
    android:id="@+id/cb4"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_above="@+id/buy"
    android:layout_alignLeft="@+id/cb3"
    android:layout_marginBottom="34dp"
    android:text="t-Shirt - 200 Rs" />

<CheckBox
    android:id="@+id/cb3"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/cb2"
    android:layout_centerVertical="true"
    android:text="Shorts - 300 Rs" />

<CheckBox
    android:id="@+id/cb2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_above="@+id/cb3"
    android:layout_alignLeft="@+id/cb1"
    android:layout_marginBottom="17dp"
    android:text="Jeans - 500 Rs" />

</RelativeLayout>

java文件

package com.example.multiactivity;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;

public class MaleActivity extends Activity {

Button b1;
CheckBox cb1, cb2, cb3, cb4;

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.male);

    b1 = (Button) findViewById(R.id.buy);
    cb1 = (CheckBox) findViewById(R.id.cb1);
    cb2 = (CheckBox) findViewById(R.id.cb2);
    cb3 = (CheckBox) findViewById(R.id.cb3);
    cb4 = (CheckBox) findViewById(R.id.cb4);

    b1.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub

            String added = "";

            if (cb1.isChecked()) {

                int a = 400;

            }
            if (cb2.isChecked()) {

                int b = 500;
            }
            if (cb3.isChecked()) {

                int c = 300;
            }
            if (cb4.isChecked()) {

                int d = 200;
            } else {

                return;

            }

        }

    });

}

}

我正在尝试添加所有选中的复选框。

我正在尝试获取所有添加产品的总数。

我无法为总数字选择所有复选框。

我想添加选定的int并获得总数

离。 int a + b + c;

帮助

感谢。

6 个答案:

答案 0 :(得分:0)

您似乎在说是否选中了一个复选框,然后将library( data.table ) setDT( trndR )[ , weeks := seq_len( 48 ), by = FY ] 设置为一个值。

如果您的值是静态的,请提前将其初始化并执行类似

的操作
int

编辑:如果您的可点击性有问题,请参阅https://developer.android.com/reference/android/view/View.html#attr_android%3aclickable

答案 1 :(得分:0)

使用这个java文件(请注意&#34; onClick&#34;函数末尾的注释)

package com.example.multiactivity;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;

public class MaleActivity extends Activity {

Button b1;
CheckBox cb1, cb2, cb3, cb4;

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.male);

    b1 = (Button) findViewById(R.id.buy);
    cb1 = (CheckBox) findViewById(R.id.cb1);
    cb2 = (CheckBox) findViewById(R.id.cb2);
    cb3 = (CheckBox) findViewById(R.id.cb3);
    cb4 = (CheckBox) findViewById(R.id.cb4);

    b1.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub

            String added = "";
            int sum = 0;

            if (cb1.isChecked()) {

                sum += 400;

            }
            if (cb2.isChecked()) {

                sum += 500;
            }
            if (cb3.isChecked()) {

                sum += 300;
            }
            if (cb4.isChecked()) {

                sum += 200;
            }

            //now in "sum" you have the sum

        }

    });

}

}

答案 2 :(得分:0)

我建议创建一个名为total

的私有字段
set()

然后你可以在任何你想要的地方使用总计

希望这会有所帮助:)

答案 3 :(得分:0)

我猜你的onClick()方法可能就是

    String added;
    @Override
    public void onClick(View v) {

        int a = 0;
        if (cb1.isChecked()) a+=400;
        if (cb2.isChecked()) a+=500;
        if (cb3.isChecked()) a+=300;
        if (cb4.isChecked()) a+=200;
        added = Integer.toString(a);
    }

我真的不知道为什么复选框不起作用。

答案 4 :(得分:0)

我认为你最好用这个

替换你的代码
HashMap<String,Boolean> items = new HashMap<>();
checkbox1.setOnCheckedChangeListener(new CompoundButton.onCheckedChangeListener(){
@Override
public void onCheckedChange(CompundButton buttonView,boolean isChecked){
if(isChecked){items.put("order982929",true);}
}
});

继续使用其他复选框,最后将此HashMap转换为json并将其发送到您的服务器

答案 5 :(得分:0)

点击付款按钮后App停止。

// MaleActivity.java
package com.example.multiactivity;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;

public class MaleActivity extends Activity {

Button b1;
CheckBox cb1, cb2, cb3, cb4;

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.male);

    b1 = (Button) findViewById(R.id.buy);
    cb1 = (CheckBox) findViewById(R.id.cb1);
    cb2 = (CheckBox) findViewById(R.id.cb2);
    cb3 = (CheckBox) findViewById(R.id.cb3);
    cb4 = (CheckBox) findViewById(R.id.cb4);

    b1.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub

            int sum = 0;

            if (cb1.isChecked()) {

                sum += 400;

            }
            if (cb2.isChecked()) {

                sum += 500;
            }
            if (cb3.isChecked()) {

                sum += 300;
            }
            if (cb4.isChecked()) {

                sum += 200;
            }

            int a = sum;
            Intent i = new Intent(MaleActivity.this, LastPage.class);
            i.putExtra("total", a);
            startActivity(i);

        }

    });

}

}

我的上次活动。

//LastPage.java

package com.example.multiactivity;

import org.w3c.dom.Text;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.TextView;

public class LastPage extends Activity {

TextView t2;

protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.last_page);

    t2 = (TextView) findViewById(R.id.textView2);


    Intent i= getIntent();
    Bundle b = i.getExtras();

    if(b!=null)
    {
        String j =(String) b.get("total");
        t2.setText("Your Total is "+ j);
    }
}

}

App停止。

帮助

感谢