2012-05-28 110 views
1

我想從列表視圖中返回選定的值,我可以做到這一點,如果我使用默認的列表視圖,但現在我自定義列表視圖,得到imageview,ratingbarm和幾個textview。如何在用戶選擇後在麪包上返回標題的值?下面是我的代碼:從數組中獲取字符串

@Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.appslist); 

     list=(ListView)findViewById(R.id.lvApps);   


     SoapObject Request = new SoapObject (NAMESPACE, METHOD_NAME); 
    SoapSerializationEnvelope soapEnvelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); 

     soapEnvelope.dotNet = true; 
     soapEnvelope.setOutputSoapObject(Request); 

     AndroidHttpTransport aht = new AndroidHttpTransport(URL); 

     try 
     { 
      aht.call(SOAP_ACTION, soapEnvelope); 
      SoapObject resultString = (SoapObject) soapEnvelope.getResponse();   

      String[] strTitle = new String[resultString.getPropertyCount()]; 
      String[] strDeveloper = new String[resultString.getPropertyCount()]; 
      String[] strRating = new String[resultString.getPropertyCount()]; 
      String[] strLogo = new String[resultString.getPropertyCount()];   

      for(int i =0; i<resultString.getPropertyCount(); i++) 
      { 
       SoapObject array = (SoapObject) resultString .getProperty(i); 
       strTitle[i] = array.getProperty(1).toString(); //get title 
       strDeveloper[i] = array.getProperty(3).toString(); //get developer 
       strRating[i] = array.getProperty(4).toString(); //get rating 
       strLogo[i] = array.getProperty(5).toString(); //get photo    
      } 
      adapter=new AppsListAdapter(this, strTitle, strDeveloper, strRating, strLogo); 
      list.setAdapter(adapter); 

      list.setOnItemClickListener(new OnItemClickListener(){ 
       @Override 
       public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { 
        Object GetLabel = list.getItemAtPosition(arg2); 
          //Toast here 
        Toast.makeText(getApplicationContext(), GetLabel.toString(), Toast.LENGTH_SHORT).show();       

      }); 
     } 

     catch(Exception e) 
     { 

     } 
    } 
} 
+0

您使用設計模式'Holder'在'的getView'方法你' Adapter'? – Sajmon

回答

1

您應該創建模型(豆)在一個項目的所有數據包指在對象中的數據,並創建模型的陣列和發送陣列適配器..... .....

但是現在有一些方法來acive你的任務:

1 - 你有哪些可在strTitle作爲指標來獲取特定標題選定項目的位置。

String title = strTitle [position]; ///如果認爲可以把空和長度檢查是否安全

2-你有回調中的列表視圖public void onItemClick(AdapterView arg0,View arg1,int arg2,long arg3)from查看使用findViewbyid你可以得到你的textview標題

String s =(String)((TextView)view.findViewById(R.id.title))。getText(); //視圖中選擇行視圖

TextView的TXT =(TextView的)arg0.getChildAt(位置lv.firstVisiblePosition())findViewById(R.id.mylistviewtextview)。 // arg0是父視圖 String keyword = txt.getText()。toString();

3-

+0

目前,如果我按列表視圖,它返回一個數組,從項目編號1開始,1項目編號2 ....等 我想改變我的標題值 – melvintcs

+1

最簡單的方法是使用此:字符串標題= strTitle [arg2]; ... –

+0

^解決了!我很愚蠢,從來沒有想過那..謝謝! – melvintcs

1

試試這個

lv.setOnItemClickListener(new OnItemClickListener() { 

      @Override 
      public void onItemClick(AdapterView<?> arg0, View v, int position, 
        long arg3) { 
       // TODO Auto-generated method stub 
       HashMap<String, String> o = (HashMap<String, String>) mylist 
         .get(position); 
       Log.v("o", o + "n"); 
       String d = o.get("the string value you want to retrieve"); 
       Log.v("Tapped ", d); 

      } 
     }); 

其中 「LV」 是你的ListView和MYLIST是你的ArrayList

+0

我有.get(位置)的問題; – melvintcs

+0

那會是什麼? –

+0

感謝兄弟,我解決了它:) – melvintcs

相關問題