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 に答える