2017-04-03 434 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類的知識。 –

相關問題