2014-07-07 6 views
0

itemname, quantity, price와 같이 세 개의 coloumns를 가진 listview가 있습니다. 또한 gridview 단추가 있습니다. 이제 내가 원하는 것은 일 때 gridview 버튼을 클릭하면 특정 항목 이름이 listview에 itemname의 coloumn으로 표시되어야합니다. 아래 안드로이드의 listview에서 선택한 gridview 요소 텍스트를 하나씩 표시하는 방법은 무엇입니까?

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

} 

답변

0

1)입니다 ListActivity는 데이터베이스에서 그것을 호출합니다.

2) 아무 것도하지 않았다면 질문에 답장을 보내 주시기 바랍니다.보다 정확한 답변을 드릴 수 있습니다.

관련 문제