-1

基本的に2つのボタン、1つのテキストビューと1つの編集テキストを持つカスタムテーブルセルがあります。各編集テキストの横には、プラスボタンとマイナスボタンがあります。テキストボックスの数値を効果的にインクリメント/デクリメントします。

ボタンを右側のテキストボックスにリンクする方法がわかりません。つまり、プラスを押すと、その行のエディットテキストボックスに対してのみ機能するルーチンがあります。テキストボックスごとにカスタムIDを設定する必要がありますか?

質問に対してすべてのテキストが正しく出てきます。

私のカスタムセルは次のとおりです。

<TextView
    android:id="@+id/txtOption"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:layout_weight="0.00"
    android:text="Medium Text"
    android:textAppearance="?android:attr/textAppearanceMedium" />

<Button
    android:id="@+id/btnPlus"
    style="?android:attr/buttonStyleSmall"
    android:layout_width="49dp"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_below="@+id/txtOption"
    android:layout_weight="0.00"
    android:text="+" />

<Button
    android:id="@+id/btnMinus"
    style="?android:attr/buttonStyleSmall"
    android:layout_width="49dp"
    android:layout_height="wrap_content"
    android:layout_alignBaseline="@+id/btnPlus"
    android:layout_alignBottom="@+id/btnPlus"
    android:layout_toRightOf="@+id/btnPlus"
    android:layout_weight="0.00"
    android:text="-" />

<EditText
    android:id="@+id/tbAnswer"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBottom="@+id/btnMinus"
    android:layout_toRightOf="@+id/btnMinus"
    android:ems="10"
    android:inputType="number" >

    <requestFocus />
</EditText>

私のカスタムセルは次のように呼び出されています:

    class CustomAdapter extends BaseAdapter
    {

    @Override
    public int getCount() {

        return mDescription.size();
    }

    @Override
    public Object getItem(int arg0) {

        return null;
    }

    @Override
    public long getItemId(int arg0) {

        return 0;
    }

    @Override
    public View getView(int arg0, View arg1, ViewGroup arg2) {

        LayoutInflater inf=getLayoutInflater();
        View v=inf.inflate(R.layout.noncriticalasset, arg2,false);

        Button btPlus=(Button)v.findViewById(R.id.btnPlus);
        Button btMinus=(Button)v.findViewById(R.id.btnMinus);

        TextView tv=(TextView)v.findViewById(R.id.txtOption);

        EditText et=(EditText)v.findViewById(R.id.tbAnswer);

        tv.setText(mDescription.get(arg0).toString()); 


        return v;
    }


}

また、後ですべてのテキストボックスからのすべての情報を照合し、それぞれに1つのクエリを作成する必要があります。それぞれに対してを行う送信ボタンはありますか?(自動アレイが作成されたか、類似していますか?)

トム

4

2 に答える 2

1

リスナーを追加する必要があります。これは、すべてのアイテムのボタンにリスナーを割り当てる方法の例です。

@Override
public View getView(int arg0, View arg1, ViewGroup arg2) {

  btPlus.setOnClickListener(new OnClickListener() {

     public void onClick(View v) {


     }
  });

  return v;
}
于 2012-10-25T10:22:30.633 に答える
0

これはあなたが必要とするものですか?

ボタンの onclick() で使用します

@Override
    public void onClick(View v) {

            try {

                position = listview
                        .getPositionForView((View) v.getParent()); // position is an integer variable which helps you identify which item's plus button  was clicked
                Log.v("Position id", "" + position);

                // do some manipulations 
                notifyDataSetChanged();

            } catch (Exception e) {

                Log.e("error", "error" + e.getMessage());

            }

            break;
于 2012-10-25T10:18:22.623 に答える