如何在Android的表行中获取选定的值 [英] How to get selected values in table row in android

查看:90
本文介绍了如何在Android的表行中获取选定的值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的表格布局有11个表格行和每个表格行复选框,我想获取选定的复选框行值,并在敬酒消息中显示,长按选定的行,我已经完成了此打击,但无法正常工作,请帮助我这样

I Had the table layout with 11 table rows and check boxes each table row i want to get selected check box row value and display in a toast message on Long clicking on selected row i had done this blow but it wont works please help me with this

public class Manual_AC_Fuse_ckt extends Fragment {

    public int []check_box_count = new int[11];
    public int [] Table_Row_Count = new int[11];
    TableRow table_row;
    TableLayout table;
    CheckBox check_box;
    int i;


    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        View Root_view = inflater.inflate(R.layout.manualmode_ac_fuse_ckt, null);

        Table_Row_Count[0] = R.id.tableRow1_manual;
        Table_Row_Count[1] = R.id.tableRow2_manual;
        Table_Row_Count[2] = R.id.tableRow3_manual;
        Table_Row_Count[3] = R.id.tableRow4_manual;
        Table_Row_Count[4] = R.id.tableRow5_manual;
        Table_Row_Count[5] = R.id.tableRow6_manual;
        Table_Row_Count[6] = R.id.tableRow7_manual;
        Table_Row_Count[7] = R.id.tableRow8_manual;
        Table_Row_Count[8] = R.id.tableRow9_manual;
        Table_Row_Count[9] = R.id.tableRow10_manual;
        Table_Row_Count[10] = R.id.tableRow11_manual;

        table_row = (TableRow)Root_view.findViewById(Table_Row_Count[i]);

        check_box_count[0] = R.id.cb_1;
        check_box_count[1] = R.id.cb_2;
        check_box_count[2] = R.id.cb_3;
        check_box_count[3] = R.id.cb_3_1;
        check_box_count[4] = R.id.cb_4;
        check_box_count[5] = R.id.cb_5;
        check_box_count[6] = R.id.cb_6;
        check_box_count[7] = R.id.cb_7;
        check_box_count[8] = R.id.cb_8;
        check_box_count[9] = R.id.cb_9;
        check_box_count[10] = R.id.cb_10;
        check_box = (CheckBox)Root_view.findViewById(check_box_count[i]);






        registerForContextMenu(table_row);
        table_row.setOnLongClickListener(new View.OnLongClickListener() {

            @Override
            public boolean onLongClick(View v) {
                for(int i=1;i<11;i++){
                if(check_box.isChecked()==true){
                    int count = table_row.getChildCount();
                    String[] str = new String[count];
                    for(int j=0;j<count;j++){
                        TextView tv = (TextView)(((TableRow)table_row)).getChildAt(i);
                        str[j] = tv.getText().toString();
                    }
                    Toast.makeText(getActivity(), Arrays.toString(str), Toast.LENGTH_LONG).show();
                }
                }
                return true;
            }
        });
        return Root_view;


    }

这是我的Logcat:

This is my Logcat:

01-02 08:24:15.150: E/AndroidRuntime(7283): FATAL EXCEPTION: main
01-02 08:24:15.150: E/AndroidRuntime(7283): java.lang.NullPointerException
01-02 08:24:15.150: E/AndroidRuntime(7283):     at com.developer.milanandroid.Manual_AC_Fuse_ckt$1.onLongClick(Manual_AC_Fuse_ckt.java:78)
01-02 08:24:15.150: E/AndroidRuntime(7283):     at android.view.View.performLongClick(View.java:4276)
01-02 08:24:15.150: E/AndroidRuntime(7283):     at android.view.View$CheckForLongPress.run(View.java:17700)
01-02 08:24:15.150: E/AndroidRuntime(7283):     at android.os.Handler.handleCallback(Handler.java:730)
01-02 08:24:15.150: E/AndroidRuntime(7283):     at android.os.Handler.dispatchMessage(Handler.java:92)
01-02 08:24:15.150: E/AndroidRuntime(7283):     at android.os.Looper.loop(Looper.java:137)
01-02 08:24:15.150: E/AndroidRuntime(7283):     at android.app.ActivityThread.main(ActivityThread.java:5103)
01-02 08:24:15.150: E/AndroidRuntime(7283):     at java.lang.reflect.Method.invokeNative(Native Method)
01-02 08:24:15.150: E/AndroidRuntime(7283):     at java.lang.reflect.Method.invoke(Method.java:525)
01-02 08:24:15.150: E/AndroidRuntime(7283):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
01-02 08:24:15.150: E/AndroidRuntime(7283):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
01-02 08:24:15.150: E/AndroidRuntime(7283):     at dalvik.system.NativeStart.main(Native Method)

推荐答案

TextView tv =(TextView)((((TableRow)table_row)).getChildAt(i);你有问题

TextView tv = (TextView)(((TableRow)table_row)).getChildAt(i); you problem

Tre删除"for(int i = 1; i< 11; i ++){"和"for(int i = 0; i< 10; i ++){"

Tre to remove "for(int i=1;i<11;i++){" with "for(int i=0;i<10;i++){"

这篇关于如何在Android的表行中获取选定的值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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