TableRow上的视图禁用了TableRow的onClickListener

时间:2012-10-17 20:20:46

标签: android onclicklistener tablerow

我正在将tableRow动态添加到tableLayout中。

然后,我将TextViews添加到TableRows中,然后,我必须单击tableRow的角来获取TableRow的onClickListener。 那是因为它实际上是获取TableRow的内部视图的onClickListener。(textview的onclickListener)

我的代码:

Cursor resultado = dh.fetchAllFornecedores();//buscando no banco
    resultado.moveToFirst();
    for(int i=0;i<resultado.getCount();i++){

        TableRow tr= (TableRow) getLayoutInflater().inflate(R.layout.tablerowfornecedor, null);
        HorizontalScrollView hsc= (HorizontalScrollView)tr.getChildAt(0);
        LinearLayout linearl= (LinearLayout)hsc.getChildAt(0);
        tr.setClickable(true);
        tr.setOnClickListener(this);



       for(int j=0;j<linearl.getChildCount();j++){ //para cada textfild dos Fornecedores
                TextView textv=(TextView)linearl.getChildAt(j);
                textv.setClickable(false);
                textv=(TextView)linearl.getChildAt(j);

                if(j==0)textv.setText(resultado.getString(resultado.getColumnIndex("nome")));               
                else if(j==1)textv.setText(resultado.getString(resultado.getColumnIndex("doc1")));
                else if(j==2)textv.setText(resultado.getString(resultado.getColumnIndex("rua"))+", "+(resultado.getString(resultado.getColumnIndex("numero"))));
                else if(j==3)textv.setText(resultado.getString(resultado.getColumnIndex("id_fornecedor")));
            }
       tl.addView(tr,tlp);
       trs.add(tr);
       resultado.moveToNext();

    }

dh是我的数据库类。

如何“禁用”TableRow内部视图中的点击?

1 个答案:

答案 0 :(得分:0)

您可以使用:

Activity.dispatchTouchEvent(MotionEvent)(针对父母活动)

或:

ViewGroup.onInterceptTouchEvent(MotionEvent)(对于父级布局)

在发送给他们的孩子之前拦截动议事件。