【问题标题】:add more elemens in a row in ListView- Android在 ListView-Android 中连续添加更多元素
【发布时间】:2017-08-11 18:13:26
【问题描述】:

我有一个应用程序,允许我在单击按钮后添加一些房屋。我正在使用列表视图来显示它,但我需要在一行中添加 4 个房屋。当我单击按钮时,它会将房屋添加到新行中,而不是在同一行中。在 ListView 的单行中添加更多元素的代码是什么?

这是我的 ListViewAdapter:

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;
    }

}

对于一只动物:

 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();
            }
        });

【问题讨论】:

  • 根据我的理解,你需要在第一行有一个按钮,在按钮上点击 4 个房子应该显示在第一行本身,在按钮的右侧......我是对的??????
  • 我的描述不是很清楚。例如,我有 3 种动物。狐狸、狼和河马。在第一行,我用按钮为 Foxes 添加了一个房子。当我再次单击该按钮时,在该行中添加另一所房子时,它会将我的房子放在第二行,而不是在第一所房子之后..我不知道如何在一行中添加更多房子..跨度>
  • 您需要发布有关 OnClickListener 的代码。
  • 我现在已经发布了 :D 我想改用 GridView,可以吗?

标签: java listview android-studio


【解决方案1】:

听起来问题是因为您的房屋是一个垂直显示在列表视图中的列表。添加房屋时,您将其添加到列表视图的下一行。

我建议制作自定义行布局和自定义适配器来管理它。然后,当您单击一行时,您可以返回该行的 id 并使用特定 id 将房子添加到视图中。

与这里的铁杆程序员相比,我还是个新手,所以我不能给你可靠的代码,也不允许我发表评论。我希望这至少可以帮助您朝着正确的方向前进。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-05-21
    • 2021-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-23
    相关资源
    最近更新 更多