2017-04-03 438 views
-4

我有从ArrayList获取值的问题。 Eveyrhing我可以做的是得到像这样的价值:[Ljava.lang.string @....如何从arraylist中获取字符串

你能帮助我吗?我不知道mProductList.get(???)应该是什么。我想从点击项目分离值。

public class Activity1 extends Activity { 
private ListView lvProduct; 
private ProductListAdapter adapter; 
private List<Product> mProductList; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity1); 

    lvProduct = (ListView)findViewById(R.id.listView1); 

    mProductList = new ArrayList<>(); 
    mProductList.add(new Product(1, "Product_1", "Price", "Description")); 
    mProductList.add(new Product(2, "Product_2", "Price", "Description")); 
    mProductList.add(new Product(3, "Product_3", "Price", "Description")); 

    adapter = new ProductListAdapter(getApplicationContext(), mProductList); 
    lvProduct.setAdapter(adapter); 

    lvProduct.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
     @Override 
     public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
      Intent newActivity = new Intent(getApplicationContext(), BrowseProduct.class); 
      newActivity.putExtra("1st column value", mProductList.get(???)); 
      newActivity.putExtra("2nd column value", mProductList.get(???)); 
      newActivity.putExtra("3rd column value", mProductList.get(???)); 
      newActivity.putExtra("4th column value", mProductList.get(???)); 
      startActivity(newActivity); 
     } 
    }); 
} 

}

+1

显示你的'Product' –

+0

让您的产品型号类,你必须有干将值 – AwaisMajeed

+1

请告诉我们什么你的问题是;那个字符串'[Ljava.lang.string @ .... '看起来好像你正在**数组**上调用toString ...所以退后一步;并创建一个真正的[mcve]! – GhostCat

回答

0

您需要首先获得位置引用,然后获取的该值来自ArrayList的位置

mProductList.get(position).getProductName(); 

快乐编码!

+0

简单而有效!非常感谢你。 – Jakub

+0

很高兴帮助! –

0

您应该声明Product类获取和设置方法

nowyEkran.putExtra("1st column value", mProductList.get(position).getProduct()); 

 /** 
     * Created by Intellij Amiyo on 03-04-2017. 
     */ 

     public class Product implements Serializable { 

     public String product,price,description; 
     int id; 

     // Empty constructor 
     public Product() 
     { 

     } 

     // constructor 
     public Product(int id,String product,String price,String description) { 

      this.price = price; 
      this.product = product; 
      this.description = description; 
      this.id=id; 

     } 

      public String getprice() { 
      return this.price; 
     } 

     public void setprice(String price) { 
      this.price = price; 
     } 
     public String getProduct() { 
      return this.product; 
     } 

     public void setProduct(String product) { 
      this.product = product; 
     } 
     public String getDescription() { 
      return this.description; 
     } 

     public void setDescription(String product) { 
      this.description = description; 
     } 

     public int getID() { 
      return this.id; 
     } 

     public void setID(int id) { 
      this.id = id; 
     } 

} 
+0

getFirstColumn将不会工作,直到他写了这个吸气剂在产品模型类 – AwaisMajeed

+0

@AwaisMajeed我知道。它的一个例子 –

+0

现在你的答案很有意义 – AwaisMajeed

0

试试这个

mProductList.get(position).getMethod() 
0

这将让索引你的数组列表0 1 2,它会返回对象

mProductList.get(0); 
mProductList.get(1); 
mProductList.get(2); 
+0

你不明白这个问题。你好吗? – AwaisMajeed

+0

我不确定是否有人真正理解这个问题。我们在10分钟内看到8个低质量答案这一事实很好地表明问题本身质量低下;只能作为废话磁铁。对于苛刻的措辞感到抱歉;但这正是这里所发生的。 – GhostCat

0

把你的大括号()中的位置。像下面...

lvProduct.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
     @Override 
     public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
      Intent newActivity = new Intent(getApplicationContext(), BrowseProduct.class); 
      newActivity.putExtra("1st column value", mProductList.get(position)); 
      newActivity.putExtra("2nd column value", mProductList.get(position)); 
      newActivity.putExtra("3rd column value", mProductList.get(position)); 
      newActivity.putExtra("4th column value", mProductList.get(position)); 
      startActivity(newActivity); 
     } 
    }); 

希望这将帮助你...(:

0
mProductList.get(position).price 
0
@Override 
     public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 

     } 

您可以从回调方法的int position参数获得点击的项目位置

0

你已经有了一个叫做position的参数,这个参数是get的参数,但是那个将会是return a Product object和y你需要从那里阅读给定的成员。既然你不同意的Productclass与我们的代码,我们只能猜测:

@Override 
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
     Intent newActivity = new Intent(getApplicationContext(), BrowseProduct.class); 
     newActivity.putExtra("1st column value", mProductList.get(position).ID); 
     newActivity.putExtra("2nd column value", mProductList.get(position).Name); 
     newActivity.putExtra("3rd column value", mProductList.get(position).Price); 
     newActivity.putExtra("4th column value", mProductList.get(position).Description); 
     startActivity(newActivity); 
    } 
+1

,除非ID,名称,价格和描述的访问说明符不是私人的 – AwaisMajeed

+0

@AwaisMajeed没错。这就是为什么我写了这样的信息,因为我们只能猜测缺乏关于Product类的知识。 –

相关问题