2017-11-17 3 views
0

私はincrement systemを持っています。DialogAlertからの値をonClickに保存するときは、ListView Adapterの列にします。ここで リストビューアの特定の列に項目を追加する

は私Adapterです:

String num = elegantNumberButton.getNumber(); 
       vanzatorProduseList.add(num); 

エラー:

ここ

public class VanzatorProduseList extends ArrayAdapter<VanzatorProduse> { 

private Activity context; 
private SparseBooleanArray selectedListItemsIds; 
private List<VanzatorProduse> vanzatorProduseList; 


public VanzatorProduseList(Activity context, List<VanzatorProduse> vanzatorProduseList){ 
    super(context, R.layout.list_produse_vanzator, vanzatorProduseList); 
    this.context = context; 
    selectedListItemsIds = new SparseBooleanArray(); 
    this.vanzatorProduseList = vanzatorProduseList; 
} 

@NonNull 
@Override 
public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) { 
    LayoutInflater inflater = context.getLayoutInflater(); 

    View listViewItem = inflater.inflate(R.layout.list_produse_vanzator, null, true); 

    TextView textViewProdus1 = (TextView) listViewItem.findViewById(R.id.textViewProdus1); 
    TextView textViewPret1 = (TextView) listViewItem.findViewById(R.id.textViewPret1); 
    final TextView textViewCantitate1 = (TextView) listViewItem.findViewById(R.id.textViewCantitate1); 

    final VanzatorProduse vanzatorProduse = vanzatorProduseList.get(position); 

    textViewProdus1.setText(vanzatorProduse.getProdus()); 
    textViewPret1.setText(vanzatorProduse.getPret()); 


    textViewCantitate1.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      // custom dialog 
      final Dialog dialog = new Dialog(context); 
      dialog.setContentView(R.layout.dialog_alert); 
      dialog.setTitle("Alege Canitatea"); 

      // set the custom dialog components - text, image and button 
      final Button dialogBtn = (Button) dialog.findViewById(R.id.dialog_btn); 
      final ElegantNumberButton elegantNumberButton = (ElegantNumberButton) dialog.findViewById(R.id.elegantNumberButton); 

      // if button is clicked, close the custom dialog 
      dialogBtn.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View v) { 
       String num = elegantNumberButton.getNumber(); 
       vanzatorProduseList.add(num); 
        dialog.dismiss(); 

       } 
      }); 

      dialog.show(); 
     } 
    }); 

    return listViewItem; 
} 

は、私が試したが、私はエラーと次に何をすべきかは考えて得たものです

'add(com.dev.darius.neglije.Vanzator.ListaProduse.VanzatorProduse)' in 'java.util.List' cannot be applied to '(java.lang.String)' 

ここで私はtextViewCantitate1と呼ばれるTextViewに表示したいと思っています。

ご理解ください。

+0

あなたにリフレッシュするためにnotifyDataSetChanged()メソッドを呼び出すことを忘れないでください。 'VanzatorProduse'要素の' List'に 'String'を追加しようとしています。うまくいかない場合は、そのリストに 'VanzatorProduse'オブジェクトを追加する必要があります – pleft

答えて

1

Stringタイプを追加しようとしています。 vanzatorProduseListリストにVanzatorProduseタイプのみを追加できます。だから、問題の原因がある:あなたが行、次のしているあなたのコードで

String num = elegantNumberButton.getNumber(); 
vanzatorProduseList.add(num); 

:だから

final VanzatorProduse vanzatorProduse = vanzatorProduseList.get(position); 

textViewProdus1.setText(vanzatorProduse.getProdus()); 
textViewPret1.setText(vanzatorProduse.getPret()); 

を、あなたはvanzatorProduse.setProdus(num)または任意の他の適切なフィールドnum値を追加する可能性があり、その後、リストにそれを追加します。

vanzatorProduseList.add(vanzatorProduse); 
+0

ありがとうございます。 – Clau

+0

追加することはできません。この情報を 'VanzatorProduse'オブジェクトに入れてリストに追加する必要があります。 – pleft

+0

@pleftと@Clauは' VanzatorProduse'に 'num'値をどこに割り当てるべきかを知っておくべきです – jibrahim

0
VanzatorProduse producse = new VanzatorProduse(); 
producse.setProdus("add value here") 
vanzatorProduseList.add(producse); 
1

@jibrahimによって以前の回答で述べたように:

You are trying to add String type into List vanzatorProduseList. You can add only VanzatorProduse type into vanzatorProduseList list. So, the cause of the problem is:

String num = elegantNumberButton.getNumber(); 
vanzatorProduseList.add(num); 

You need to do something like this Create Object of your Custom class and assign value to that:

String num = elegantNumberButton.getNumber(); 
    VanzatorProduse numVanProObject = new VanzatorProduse(); 
    numVanProObject .setNumber(num); 
    vanzatorProduseList.add(numVanProObject); 

But your custom call should have method to cater this type issue

編集:リスト

+1

また、notifyDataSetChangedリストビューを更新します。 – wprenison

+0

ありがとう、私の答えを更新しました:) –

+0

申し訳ありません。私はJavaに新しいです..しかし、ここからどのように私のTetxView(textviewcantitate)の結果を表示できますか?これらのテキストビュー(textviewprodust、textviewpret) – Clau

関連する問題