2011-04-21 132 views
0

我很努力地在列表視圖中顯示結果。所以這裏是我的應用簡介:列表視圖不顯示結果

第一個屏幕 - >執行和搜索的不同活動就是其中之一。一旦用戶選擇搜索,下一個屏幕就有一個輸入框和兩個按鈕。根據輸入關鍵字,我搜索結果並希望在下一個屏幕上顯示結果,但出現下一個屏幕,但結果不顯示。下面是我的應用程序的一些代碼

public void onCreate(Bundle savedInstanceState){ 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.searchcriteria); 

     txtSearch = (EditText)findViewById(R.id.searchstring); 
     btnCurrentLoc = (Button)findViewById(R.id.currentlocation); 

     btnCurrentLoc.setOnClickListener(new Button.OnClickListener(){ 
      public void onClick(View view){ 
       setContentView(R.layout.searchresults); 
       String keyword = txtSearch.getText().toString(); 
       performSearch(keyword);       
      } 
     }); 
    } 

private void performSearch(String searchterm){ 
     progressDialog = ProgressDialog.show(Search.this, "Please wait......", "Retrieving data ....",true,true); 
     PerformSearchTask task = new PerformSearchTask(); 
     task.execute(searchterm); 
     progressDialog.setOnCancelListener(new CancelTaskOnCancelListener(task));  
    } 

private class PerformSearchTask extends AsyncTask<String, Void, List<Event>>{  

     @Override 
     protected List<Event> doInBackground(String... arg0) { 
      String query = arg0[0]; 
      return eventGetter.find(query); 
     } 

     protected void onPostExecute(final List<Event> result){ 
      runOnUiThread(new Runnable(){ 

       public void run() { 
        if(progressDialog != null){ 
         progressDialog.dismiss(); 
         progressDialog = null; 
        } 
        if(result != null){ 
         Vector<String> ve = new Vector<String>(); 
         for(Event event: result){ 
          ve.add(event.title + "\n" + event.eventlocation + "\t" + event.eventdate); 
         } 
         String[] eventArray = new String[ve.size()]; 
         for(int i = 0; i < ve.size(); i++){ 
          eventArray[i] = ve.get(i); 
         } 

         ListView lv = (ListView)findViewById(R.id.list); 
         lv.setAdapter(new ArrayAdapter<String>(Search.this,R.layout.searchresults,eventArray)); 

        } 

       } 

      }); 
     } 
    } 

SearchResult所屏幕布局如下

<?xml version="1.0" encoding="utf-8"?> 
<ScrollView 
android:id="@+id/resultsofsearch" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
xmlns:android="http://schemas.android.com/apk/res/android" 
> 
<RelativeLayout 
android:id="@+id/relativelayout_1" 
android:layout_width="320px" 
android:layout_height="332px" 
xmlns:android="http://schemas.android.com/apk/res/android" 
> 
<Button 
android:id="@+id/back" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:text="Back" 
android:layout_alignParentTop="true" 
android:layout_alignParentLeft="true" 
> 
</Button> 
<Button 
android:id="@+id/info" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:text="Info" 
android:layout_alignParentTop="true" 
android:layout_alignParentRight="true" 
> 
</Button> 

<ListView 
android:id="@+id/list" 
android:layout_width="wrap_content" 
android:layout_height="0dip" 
android:layout_weight="1.0" 
android:layout_below="@+id/back" 
android:layout_centerHorizontal="true" 
> 
</ListView> 
</RelativeLayout> 
</ScrollView> 
+0

你有沒有調試應用程序,看看它失敗了? – rajath 2011-04-21 05:01:49

+0

請同時發佈佈局代碼的XML。 – Stephan 2011-04-21 05:14:35

+0

@Stephan - 我添加了佈局。 @Rajath - 它沒有失敗,我得到我的數組中的數據,我設置適配器爲listview,我的屏幕searchresults顯示,但沒有結果顯示在那。 – yogsma 2011-04-21 18:21:46

回答

2

我覺得你應該實現在單獨活動的每個按鈕的點擊。它應該解決你的問題試試這個......讓我知道是否有任何困難發生

+0

我要試試這個,但這並不總是最佳的解決方案。 – yogsma 2011-04-21 18:22:22

+0

感謝它幫助,我發現我真的不需要那個可運行的對象。我對Asynctask有些誤解。 – yogsma 2011-04-22 16:13:08