У меня следующий код
package cyclist.project;
import java.util.ArrayList;
import java.util.List;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import org.json.JSONTokener;
import cyclist.Utility.AppLog;
import cyclist.Utility.common;
import cyclist.Utility.webService;
import cyclist.bean.discussion_item;
import cyclist.dal.Attributes;
import cyclist.dal.DBHelper;
import cyclist.dal.DBService;
import android.app.Activity;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.View.OnClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
public class user_discussion extends Activity{
ListView events;
ArrayList<discussion_item> list;
static EditText et;
Button btn;
webService webService;
cyclist.Utility.common common;
DBService dbService;
DBHelper dbHelper;
Attributes attributes;
public void onCreate(Bundle savedInstanceState) {
webService = new cyclist.Utility.webService(this);
common = new common();
dbHelper = new DBHelper(this);
dbService = new DBService(dbHelper);
super.onCreate(savedInstanceState);
setContentView(R.layout.user_discussion);
events = (ListView) findViewById(R.id.lv_user_discussion_list);
et = (EditText) findViewById(R.id.lv_list_events_listT);
btn = (Button) findViewById(R.id.lv_list_events_list);
list = new ArrayList<discussion_item>();
showTime();
setList();
events.setAdapter( new ListAdapter(user_discussion.this, list) );
// new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, list)
}
public void register(View view) {
Intent intent = new Intent("com.google.android.c2dm.intent.REGISTER");
intent.putExtra("app", PendingIntent.getBroadcast(this, 0, new Intent(), 0));
intent.putExtra("sender", "myemail@gmail.com");
startService(intent);
et.setText("");
}
public void showTime() {
// ListAdapter la = new ListAdapter(user_discussion.this, list);
// la.notifyDataSetChanged();
// SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
// String string = prefs.getString(AUTH, "n/a");
// Toast.makeText(this, string, Toast.LENGTH_LONG).show();
// Log.d("C2DM RegId", string);
btn.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
String url = common.setChatInUrl(et.getText().toString() );
AppLog.logString("url= "+ url);
String response = webService.getWebResponse(url);
setList();
et.setText("");
// register(btn);
}
});
}
private void setList(){
JSONObject json;
try {
json = new JSONObject(JSON.getJSONfromURL("http://myservices/ws_cyc/events_service.php?action=get_chats"));
JSONArray miles = json.getJSONArray("cyc");
JSONObject rec;
JSONObject rec2 = null;
discussion_item item = null;
for (int i=0; i<miles.length(); i++){
rec = miles.getJSONObject(i);
rec2 = rec.getJSONObject("cycObject");
item = new discussion_item(rec2.getString("Chats").toString());
list.add(item);
}
} catch (JSONException e) {
e.printStackTrace();
}
}
@SuppressWarnings("unused")
private class ListAdapter extends ArrayAdapter<discussion_item> {
private LayoutInflater inflater;
public ListAdapter( Context context, List<discussion_item> list ) {
super( context, R.layout.user_discussion_left_item, R.id.txt_event_item_title, list );
inflater = LayoutInflater.from(context); // Cache the LayoutInflate to avoid asking for a new one each time.
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
inflater = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
ViewHolder holder;
// TextView textView;
discussion_item event = (discussion_item) this.getItem(position);
AppLog.logString(String.valueOf(position));
holder = new ViewHolder();
if ( convertView == null ) {
if(position%2 == 0){
convertView = inflater.inflate(R.layout.user_discussion_left_item, null);
holder.textView = (TextView) convertView.findViewById( R.id.txt_event_item_title);
holder.textView.setText(event.getTitle());
}
else{
convertView = inflater.inflate(R.layout.user_discussion_right_item, null);
holder.textView = (TextView) convertView.findViewById( R.id.txt_event_item_title);
holder.textView.setText(event.getTitle());
}
}
return convertView;
}
}
public void NavigateToResult(Context context, Class<?> targetClass) {
Intent intent = new Intent(context, targetClass);
startActivity(intent);
finish();
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event)
{
if (keyCode == KeyEvent.KEYCODE_BACK)
{
NavigateToResult(this, login.class);
return false;
}
else
return super.onKeyDown(keyCode, event);
}
static class ViewHolder
{
public TextView textView;
//ImageView imgIcon;
}
}
Я использую PHP JSON Web Service для получения списка чата.Проблема в том, что мой пользовательский список не отображается должным образом, т.е. он показывает только 4 строки чата
0 - привет 1 - привет 2 - как ru?3 - отлично.
остальное не отображается, т. Е.
4 - какой у вас план на сегодня 5 - ничего 6 ...... и т. Д.вместо того, чтобы отображать 4 и более, он повторяет эти 0-3 индексные чаты.Пожалуйста, помогите.где я делаю ошибку?Когда я отлаживаю свой веб-сервис, запустив его в веб-браузере, он возвращает полный список чата.