【问题标题】:how to display selected gridview elements text one by one in listview in android?如何在android的listview中一一显示选定的gridview元素文本?
【发布时间】:2014-07-07 15:05:22
【问题描述】:

我有一个列表视图,其中包含三个列作为项目名称、数量、价格。我也有一个gridview按钮。现在我想要的是 单击gridview按钮时,该特定项目名称需要显示在listview中的itemname列中。

package com.example.test;

import java.util.ArrayList;
import java.util.List;


import android.R.string;
import android.support.v7.app.ActionBarActivity;
import android.graphics.Color;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.GridView;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.AdapterView.OnItemClickListener;


public class MainActivity extends ActionBarActivity {

    ListviewAdapter listviewAdapter;
    List<Constant> constantlist = new ArrayList<Constant>();

    ListView list;
    String[] item;
    String[] quantity;  
    String[] price;

    //string getprice;
    //String balaji = "shankar";



    ArrayList<String> ar = new ArrayList<String>();

    GridView grid;

        static final String[] letters = new String[] { 
            "A", "B", "C", "D", "E",
            "F", "G", "H", "I", "J",
            "K", "L", "M", "N", "O",
            "P", "Q", "R", "S", "T",
            "U", "V", "W", "X", "Y", "Z"};



    //private ArrayList<HashMap<String,String>> list;


    public void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


        grid = (GridView) findViewById(R.id.gridView);

        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, letters);

        grid.setAdapter(adapter);

        grid.setOnItemClickListener(new OnItemClickListener() {
            public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
                Toast.makeText(getApplicationContext(),
                        ((TextView) v).getText(), Toast.LENGTH_SHORT).show();
                //TextView currentLetter = (TextView) v.findViewById(R.id.text1);
                //currentLetter.setTextColor(Color.GREEN);
            }
        });





        item = new String[] {"Pizza", "Burger", "Biriyani" };   


        quantity = new String[] {"1", "2", "3"};


        price = new String[] {"10", "60", "60"};



        for(int i=0;i<item.length;i++){
            Constant constant = new Constant (item[i], quantity[i], price[i]);
            constantlist.add(constant);

        }



        list= (ListView)findViewById(R.id.listview);




        listviewAdapter = new ListviewAdapter(this, R.layout.listview_row, constantlist);

        list.setAdapter(listviewAdapter); 

        }
}
}

下面是我的适配器类

package com.example.test;

import java.util.List;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.TextView;


public class ListviewAdapter extends ArrayAdapter<Constant>{


    Context context;
    LayoutInflater inflater;
    List<Constant> constantlist;


    public ListviewAdapter(Context context, int resourceId,
            List<Constant> worldpopulationlist) {
        super(context, resourceId, worldpopulationlist);
        //mSelectedItemsIds = new SparseBooleanArray();
        this.context = context;
        this.constantlist = worldpopulationlist;
        inflater = LayoutInflater.from(context);
    }

    private class ViewHolder{
        TextView item;
        TextView quantity;
        TextView price;
    }


    public View getView(int position,  View view, ViewGroup parent){
        final ViewHolder holder;

        if(view == null){
            holder = new ViewHolder();
            view=inflater.inflate(R.layout.listview_row, null);

            holder.item = (TextView) view.findViewById(R.id.txt_item);
            holder.quantity = (TextView) view.findViewById(R.id.txt_quantity);
            holder.price = (TextView) view.findViewById(R.id.txt_price);

            view.setTag(holder);        
    }else{
        holder = (ViewHolder) view.getTag();
    }

        holder.item.setText(constantlist.get(position).getItem());
        holder.quantity.setText(constantlist.get(position).getQuantity());
        holder.price.setText(constantlist.get(position)
                .getPrice());

        return view;

    }

    public List<Constant> getWorldPopulation() {
        return constantlist;
    }

}

【问题讨论】:

    标签: java android listview gridview


    【解决方案1】:

    1) On Button Click Listener 将数据(Button 的名称)发送到 Listview 的活动,或者如果您已创建数据库,则将其添加到数据库中并在 ListActivity 从数据库中调用它。

    2) 如果您做过任何事情,请提出问题,以便我们给您更准确的答案。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-03-21
      • 1970-01-01
      • 1970-01-01
      • 2016-01-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多