使用setOnItemClickListener从ListView获取项目名称

时间:2013-12-10 23:08:39

标签: android listview

Hello world

我需要你的帮助,我有onclick事件的列表视图,但我需要从点击的项目中获取项目名称。

这就是我现在所拥有的......

Product_listview.setOnItemClickListener(new AdapterView.OnItemClickListener(){
    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position,long id) {

               final int selected_row = position;
               final Product user = (Product) parent.getItemAtPosition(position);

               AlertDialog.Builder alert = new AlertDialog.Builder(nuevo_pedido.this);

               alert.setTitle("Cantidad: ");

                final NumberPicker np = new NumberPicker(nuevo_pedido.this);
                String[] nums = new String[11];
                for(int i=0; i<nums.length; i++)
                       nums[i] = Integer.toString(i);

                np.setMinValue(0);
                np.setMaxValue(nums.length-1);
                np.setWrapSelectorWheel(false);
                np.setDisplayedValues(nums);
                np.setValue(0);


                alert.setView(np);

                alert.setPositiveButton("Aceptar", new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int whichButton) {
                  // Do something with value!

                    int valor = np.getValue();

                    Toast.makeText(getApplicationContext(),  "Valor: " + valor + " Producto: " + user + " Usr: " + extraData, Toast.LENGTH_SHORT).show();

                  }
                });

                alert.setNegativeButton("Cancelar", new DialogInterface.OnClickListener() {
                  public void onClick(DialogInterface dialog, int whichButton) {

                  }
                });

                alert.show();
    }

}); 

当我的代码运行完全正常,但发送一些不是名字的东西。

chintan.khetiya.sqlite.cursor.Product@40ec4d88

建议??

3 个答案:

答案 0 :(得分:3)

尝试使用lv.getItemAtPosition(position)来获取文字。

lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> arg0, View v, int position,
    long arg3) 
{
   String name = arg0.getItemAtPosition(position).toString()
}
});

看看这个http://developer.android.com/reference/android/widget/AdapterView.html#getItemAtPosition%28int%29

答案 1 :(得分:0)

从对象产品,可能无法通过getter捕获name属性: 的 product.getName()

或者问题是别的什么?

答案 2 :(得分:0)

Product_listview.setOnItemClickListener(new AdapterView.OnItemClickListener(){
    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position,long id) {

我们可以从adapterView获取对象

final Product user = (Product)parent.getAdapter().getItem(position);

现在,你得到了

  

getter的产品名称。

它对我有用。