0

このチュートリアルに従いましたが、エミュレーターがアイテムを表示しない理由を理解できません。

これが私のListActivityです:

public class MyListActivity extends ListActivity {

private Timer myTimer;
private boolean SetTimerOnResume=false;

private ArrayList<HashMap<String,String>> chat=new ArrayList<HashMap<String,String>>();

private LazyAdapter adapter;

static final String Key_username="username_key";
static final String Key_email="email_key";
static final String Key_messageText="messageText_key";
static final String Key_messageDate="messageDate_key";

     @Override
      public void onCreate(Bundle savedInstance) {
         super.onCreate(savedInstance);
            setContentView(R.layout.lists);

            HttpRequest httpRequest=new HttpRequest("ReturnNewChatsToAdmin", "admin", "You" , "zawalarsa", "muazzamalii@hotmail.com");  
            String data=httpRequest.ExecuteRequest();
            httpRequest.ExecuteRequest();

            try {

                 JSONArray jsonarr=new JSONArray(data);

                for(int i=0;i<jsonarr.length();i++)
                {   
                    HashMap<String,String> hashMap=new HashMap<String,String>();

                    hashMap.put(MyListActivity.Key_username, jsonarr.getJSONObject(i).getString("username"));
                    hashMap.put(MyListActivity.Key_email, jsonarr.getJSONObject(i).getString("email"));
                    hashMap.put(MyListActivity.Key_messageText, jsonarr.getJSONObject(i).getString("chatText"));
                    hashMap.put(MyListActivity.Key_messageDate, jsonarr.getJSONObject(i).getString("chatDate"));

                    chat.add(hashMap);

                }

            ListView lv=(ListView)findViewById(android.R.id.list);
            adapter=new LazyAdapter(this,chat);
            lv.setAdapter(adapter);

          lv.setOnItemClickListener(new OnItemClickListener() {

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

            }
          });

            }
            catch(JSONException e)
            {
            }
     }

}

チュートリアルに示されている lazyadapter は次のとおりです。

パッケージcom.app.ServerClient;

public class LazyAdapter extends BaseAdapter{

private Activity activity;
private ArrayList<HashMap<String,String>> hashmap;
private static LayoutInflater inflater=null;

public LazyAdapter(Activity activity,ArrayList<HashMap<String,String>> hashMaps)
{
    this.activity=activity;
    this.hashmap=hashMaps;
    LazyAdapter.inflater=(LayoutInflater)this.activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}

@Override
public int getCount() {
    return hashmap.size();
}

@Override
public Object getItem(int position) {
    return position;
}

@Override
public long getItemId(int position) {
    return position;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {

    View view=convertView;

    if(convertView==null)
        view=inflater.inflate(R.layout.list_layout,null);

    TextView username=(TextView)view.findViewById(R.id.username);
    TextView email=(TextView)view.findViewById(R.id.email);
    TextView messageDate=(TextView)view.findViewById(R.id.chatdate);
    TextView messagetext=(TextView)view.findViewById(R.id.messagetext);

    HashMap<String,String> map=new HashMap<String, String>();
    hashmap.get(position);

    username.setText(map.get(MyListActivity.Key_username));
    email.setText(map.get(MyListActivity.Key_email));
    messageDate.setText(map.get(MyListActivity.Key_messageDate));
    messagetext.setText(map.get(MyListActivity.Key_messageText));

    return view;
}


}

ここに私のlist_item.xmlがあります:

<?xml version="1.0" encoding="utf-8"?>


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:paddingLeft="16dp"
android:paddingRight="16dp" >


 <LinearLayout
 android:layout_width="fill_parent"
 android:layout_height="wrap_content"
 android:orientation="horizontal" >

 <TextView
     android:id="@+id/username"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:layout_weight="11.74"
     android:textColor="#FFFF00"
     android:textSize="17sp"
     android:textStyle="bold"
      />

 <TextView
     android:id="@+id/chatdate"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:layout_weight="11.74"
     android:textColor="#FFFF00"
     android:textSize="17sp"
     android:textStyle="bold"
     />

 </LinearLayout>

 <TextView
 android:id="@+id/email"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
  />

 <TextView android:id="@+id/message" 
 android:layout_width="wrap_content" 
 android:layout_height="wrap_content"
 android:text="@string/Message"
 android:textStyle="bold"/>

<TextView android:id="@+id/messagetext" 
 android:layout_width="wrap_content" 
 android:layout_height="wrap_content"
 />

</LinearLayout>

出力は次のとおりです。

4

1 に答える 1

0

それらの行を変更します

HashMap<String,String> map=new HashMap<String, String>();
hashmap.get(position);

HashMap<String,String> map= hashmap.get(position);

それはうまくいく

于 2012-07-07T10:40:15.703 に答える