2012-01-09 1 views
0

У меня есть данные JSON, содержимое которых содержит строки и URL-адреса изображений, и я уже разбираю его в первом действии. Как я могу отображать его, как адресную книгу в моем настроенном Listview во втором действии. Должен ли я настраивать адаптер?Как я могу загрузить данные из парсера JSON и отображать его в своем настроенном виде списка?

Если это решение, что мне делать?

Я не знаком с адаптером.

Вот код из первой деятельности:

public class BBtest05Activity extends Activity { 
/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    try { 
     executeHttpGet(); 
    } catch (Exception e) { 
     Log.i("bird","parser failure"); 
     e.printStackTrace(); 
    } 
    } 

    String aStr = new String(); 
    String aStrArray[] = new String[2048]; 
    public void executeHttpGet() throws Exception { 
     try { 
     HttpClient client = new DefaultHttpClient(); 
     HttpGet request = new HttpGet("http://test.mobibon.com.tw/MovieGoTest/GetMovies.js"); 
     HttpResponse response = client.execute(request); 
     String retSrc = EntityUtils.toString(response.getEntity(),"utf-8"); 
     //there's a space in the head... 
     retSrc = retSrc.substring(1); 
      JSONObject obj = new JSONObject(retSrc); 
      JSONArray movieArray = obj.getJSONArray("movies"); 
      for(int i = 0;i < movieArray.length(); i++) 
      { 
      JSONObject movie_data = movieArray.getJSONObject(i); 
      aStr = aStr+","+movie_data.getString("cTitle"); 

      } 
      } finally { 
       aStrArray = aStr.split(","); 
       ListView list = (ListView) findViewById(R.id.linearLayout1); 
       list.setAdapter(new ArrayAdapter<String>(this, 
       android.R.layout.simple_list_item_1, aStrArray)); 
       list.setTextFilterEnabled(true); 
      } 
} 
public void aMethod(View theButton) { 
    Intent i = new Intent(this,nowamovie.class);  
    startActivity(i); 
} 

}

aMethod меняется метод активности ...

и следующий код мой файл XML во второй деятельности .. .

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_height="match_parent" 
android:layout_width="fill_parent" 
android:orientation="vertical" android:background="@drawable/pic_background"> 
<LinearLayout android:layout_height="wrap_content" 
android:layout_width="wrap_content" 
android:id="@+id/linearLayout1" > 
<ImageView android:layout_height="wrap_content" 
android:id="@+id/imageView1" 
android:layout_width="wrap_content" 
android:src="@drawable/ic_launcher"></ImageView> 
<TextView android:text="TextView" 
android:id="@+id/textView1" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:layout_marginLeft="6dip" 
android:layout_marginTop="6dip" 
android:textAppearance="?android:attr/textAppearanceLarge"> 
</TextView> 
</LinearLayout> 
<LinearLayout android:layout_height="wrap_content" 
android:layout_width="wrap_content" 
android:id="@+id/linearLayout1" 
android:orientation="horizontal"> 
<TextView android:id="@+id/textView2" 
android:text="TextView" 
android:layout_height="wrap_content" 
android:layout_width="wrap_content" 
android:textAppearance="?android:attr/textAppearanceSmall"> 
</TextView> 
<TextView android:text="TextView" android:id="@+id/textView3" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:textAppearance="?android:attr/textAppearanceSmall" 
android:layout_marginLeft="6dip"> 
</TextView> 
</LinearLayout> 

Что нужно сделать, чтобы поместить мои данные из парсера JSON в эту активность?

ответ

0

Да, вы должны настроить свой адаптер, и загрузка изображений должна быть ленивой, поиск в google для ленивых реализаций изображений в списке, и вы получите достаточно материала по этому вопросу. В версии 3.0 есть новая функция, которая представляет собой Loader, которая делает эту ленивую работу по загрузке для вас.

+0

благодарит за вашу помощь – bbbbbird1

Смежные вопросы