0

我正在将 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 内部视图的单击?

4

1 回答 1

0

您可以使用:

Activity.dispatchTouchEvent(MotionEvent)(对于家长活动)

或者:

ViewGroup.onInterceptTouchEvent(MotionEvent)(用于父布局)

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

于 2012-10-17T21:13:27.183 回答