0

リストビューの要素数に応じて動的に作成されたいくつかの EditTexts を含むリストビューがあります。リストビューの項目は、サーバーからのデータで埋められます。各編集テキストには、同じリストビューの各行に「追加」ボタンがあります。私が欲しいのは、ユーザーがこれらの編集テキストボックスに数値を入力して「追加」ボタンをクリックすると、入力された数値はクリックした順序で配列に格納される必要があります(配列の最初の位置に最初の入力)。データ別のリストビューで入力番号を表示するために将来使用するためのものです。私のコードでは、編集テキストボックスに数字を入力して「追加」をクリックすると、最初の入力のみが機能します。次のクリックでは何も機能しません(ここにトーストが表示されます)。前進。

public void Addcart(View v)
{

try{    final EditText editnum= (EditText) findViewById(R.id.edittext); 

View.OnClickListener handler = new View.OnClickListener(){
    public void onClick(View v) {   
        if(v.getId()==R.id.addbutton)
        { //  switch (v.getId()){
      //  case R.id.addbutton:
            Toast.makeText(getBaseContext(), 
                    "Input: " + editnum.getText().toString(), 
                    Toast.LENGTH_SHORT).show();
           //   break;
        }
    }
};

findViewById(R.id.addbutton).setOnClickListener(handler);
}
catch(Exception e){
    Log.e("Android Edit Text Example", e.toString());

}

4

1 に答える 1

1

BaseAdapterを拡張するクラスを作成したと思います。getView()メソッド内のリストのビューをレンダリングする作業を行います。したがって、そのリスト行の位置を簡単に取得でき(getView(int)引数はレンダリングの位置です)、その中に作成することもでき、edittextも動的にボタン設定リスナーを追加します。

これで、onItemclickListener()を使用してクリックした行の位置を取得できます。そのリストは、ユーザーがヒットした行の位置を返します。

そのため、[追加]ボタンをクリックすると、ベクターを作成し、そのメソッドを使用して、指定されたインデックスのベクターに入力された要素を挿入できます。

したがって、次に新しいリストをレンダリングするときに、このベクトルをリストとして使用して、数値のデータとして渡すことができます。

説明があなたのために働くことを願っています..

于 2012-06-21T10:22:32.237 に答える