How to show selected record of Custom list view on Toast

随声附和 提交于 2019-12-11 22:58:09

问题


I have created two textView and one EditText in Custom ListView,I want to show all record which is entered in edittext on toast on button click ,in my code it show only first record,I want to show two textview and edittext value which in entered......

public class Mmnue extends Activity {

ArrayList<HashMap<String, String>> MyArrList;
String rate ;
String itemnam ;
String quan;

  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.menuitem);
    final ListView lisView1 = (ListView)findViewById(R.id.listView1);


    MyArrList = new ArrayList<HashMap<String, String>>();

    HashMap<String, String> map;

    /*** Rows 1 ***/
    map = new HashMap<String, String>();
    map.put("ID", "Butterscotch");
    map.put("Code", "Rs 10");
    MyArrList.add(map);

    /*** Rows 2 ***/
    map = new HashMap<String, String>();
    map.put("ID", "Birthday Cake");
    map.put("Code", "Rs 100");
    MyArrList.add(map);

    /*** Rows 3 ***/
    map = new HashMap<String, String>();
    map.put("ID", "Black  Crunch");
    map.put("Code", "Rs 102");
    MyArrList.add(map);

    /*** Rows 4 ***/
    map = new HashMap<String, String>();
    map.put("ID", "Industrial Chocolate");
    map.put("Code", "Rs 200");
    MyArrList.add(map);

    /*** Rows 5 ***/
    map = new HashMap<String, String>();
    map.put("ID", "Coffee Molasses Chip");
    map.put("Code", " Rs 500");
    MyArrList.add(map);    

    /*** Rows 5 ***/
    map = new HashMap<String, String>();
    map.put("ID", "Coffee Molasses Chip");
    map.put("Code", " Rs 500");
    MyArrList.add(map);    

    lisView1.setAdapter(new CountryAdapter(this));

    // Get Item Input
    lisView1.setOnItemClickListener(new OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> parent, View view,
                int position, long id) {
            // TODO Auto-generated method stub


        Toast.makeText(Mmnue.this,""+position  ,Toast.LENGTH_LONG).show();


        }
    });





    Button btnGetItem = (Button) findViewById(R.id.btnGetItem);
    btnGetItem.setOnClickListener(new OnClickListener() 
    {
    public void onClick(View v) 
    {
        TextView txtCode = (TextView)findViewById(R.id.ColCode);
        TextView itemnm = (TextView)findViewById(R.id.ColID);
        EditText txtInput = (EditText)findViewById(R.id.txtInput);

         rate = txtCode.getText().toString();
         itemnam = txtInput.getText().toString();
         quan= itemnm.getText().toString();


        int count = lisView1.getAdapter().getCount();

    Toast.makeText(Mmnue.this, itemnam + ", " + rate+ " , " + quan    ,Toast.LENGTH_LONG).show();






    }
    });



    }


    public class CountryAdapter extends BaseAdapter
    {
    private Context context;

    public CountryAdapter(Context c)
    {
    //super( c, R.layout.activity_column, R.id.rowTextView, );
    // TODO Auto-generated method stub
    context = c;
    }



    public CountryAdapter(OnClickListener onClickListener) {
        // TODO Auto-generated constructor stub


    }



    public int getCount() {
    // TODO Auto-generated method stub
    return MyArrList.size();
    }

    public Object getItem(int position) {
    // TODO Auto-generated method stub
    return position;
    }

    public long getItemId(int position) {
    // TODO Auto-generated method stub
    return position;
    }
    public View getView(final int position, View convertView, ViewGroup parent) {
    // TODO Auto-generated method stub
     LayoutInflater inflater = (LayoutInflater) context
    .getSystemService(Context.LAYOUT_INFLATER_SERVICE);

    if (convertView == null) {
    convertView = inflater.inflate(R.layout.activity_mmnue, null);

    }

    // ColID
    TextView txtID = (TextView) convertView.findViewById(R.id.ColID);

    txtID.setText(MyArrList.get(position).get("ID") +".");

    // ColCode
    TextView txtCode = (TextView) convertView.findViewById(R.id.ColCode);
    txtCode.setText(MyArrList.get(position).get("Code"));

    return convertView;

    }

    }


    }




@Override
public boolean onCreateOptionsMenu(Menu menu) {

    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.menu, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle action bar item clicks here. The action bar will
    // automatically handle clicks on the Home/Up button, so long
    // as you specify a parent activity in AndroidManifest.xml.
    int id = item.getItemId();
    if (id == R.id.action_settings) {
        return true;
    }
    return super.onOptionsItemSelected(item);
}

}

回答1:


Just move the button click code inside of getview. Before that create one holder class and add your button inside

//Sample clickevent inside of getview
holder.b.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                //get your edittext value 
                //example
                String text = edittext.getText().toString();
                Toast.makeText(getApplicationContext(), text, Toast.LENGTH_LONG).show();

            }
        });

And also remove the onitemclick for listView



来源:https://stackoverflow.com/questions/25738872/how-to-show-selected-record-of-custom-list-view-on-toast

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!