2017-03-20 11 views
0

私はボタンをクリックしていくつかの家を追加できるアプリがあります。私はこれを表示するためにリストビューを使用していますが、私は1つの行に4つの家を追加する必要があります。ボタンをクリックすると、同じ行ではなく新しい行に家が追加されます。 ListViewの1行に要素を追加するコードはどれですか?ListViewでさらにエレメンを追加 - Android

package com.example.andraripan.myapplication; 

import android.app.Activity; 
import android.content.Context; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.BaseAdapter; 
import android.widget.ImageView; 
import android.widget.TextView; 

import java.util.ArrayList; 

/** 
* Created by andraripan on 3/2/17. 
*/ 

public class ListViewAdapter extends BaseAdapter { 

    private ArrayList<String> animals; 
    private ArrayList<Integer> houses; 
    private Activity activity; 



    public ListViewAdapter(Activity activity, ArrayList<String> animals, ArrayList<Integer> houses) { 
     super(); 
     this.animals = animals; 
     this.houses = houses; 
     this.activity = activity; 
    } 

    @Override 
    public int getCount() { 

     return animals.size(); 
    } 

    @Override 
    public String getItem(int position) { 

     return animals.get(position); 
    } 

    @Override 
    public long getItemId(int position) { 

     return 0; 
    } 

    public static class ViewHolder 
    { 
     public ImageView imgViewHouse; 
     public TextView txtViewTitle; 
    } 

    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 

     ViewHolder view; 

     LayoutInflater inflator = activity.getLayoutInflater(); 

     if(convertView==null) 
     { 
      view = new ViewHolder(); 

      convertView = inflator.inflate(R.layout.gridview_row,null); 

      view.txtViewTitle = (TextView) convertView.findViewById(R.id.textView1); 
      view.imgViewHouse = (ImageView) convertView.findViewById(R.id.imageView1); 





      convertView.setTag(view); 

     } 
     else 
     { 
      view = (ViewHolder) convertView.getTag(); 

     } 

     view.txtViewTitle.setText(animals.get(position)); 
     view.imgViewHouse.setImageResource(houses.get(position)); 



     return convertView; 
    } 

}

1匹の動物の場合:

この

は私のListViewAdapterある

Cow.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       if(coins >=15) { 
        animals.add("Cows"+ ""); 
        houses.add(R.drawable.house); 

        mAdapter.notifyDataSetChanged(); 
        coins-=15; 
        Coins.setText(String.valueOf(coins)); 
       } 
       else { 
        Toast.makeText(c, "Insufficient funds!", Toast.LENGTH_SHORT).show(); 
       } 
       dialog.dismiss(); 
      } 
     }); 
+0

私の理解によれば、最初の行にボタンが必要です。ボタンをクリックすると、4つの家がボタンの右側にある最初の行に表示されます。 –

+0

私は私の記述ではあまり明確ではありませんでした。例えば、私は3種類の動物を持っています。Foxes、Wolves and Hippos。最初の行では、私はFoxesの家をボタンで追加しました。そのボタンをもう一度クリックすると、その行に別の家を追加すると、最初の家の後ではなく、2番目の行に私の家が置かれます。もっと世話をする行を追加する方法はわかりません。 – Anr14

+0

OnClickListenerについてコードを投稿する必要があります。 – Paul

答えて

0

あなたの家は中に垂直に表示されたリストであるため、問題があるようですねリストビュー。家を追加すると、それをリストビューの次の行に追加します。

カスタム行レイアウトとカスタムアダプタを作成して管理することをお勧めします。次に、行をクリックすると、その行のIDを返し、特定のIDを持つビューに家を追加できます。

私はここのハードコアプログラマーと比べてかなり新しいので、私は固体コードを与えることはできませんまた、私はコメントすることはできません。私は、これが正しい方向にあなたを助けてくれることを望みます。

関連する問題