我正在尝试通过单击按钮来刷新列表视图。我使用notifyDataSetChanged
但它并不令人耳目一新。
static final String TAG_RESULTS="results";
static final String TAG_TWEET="text";
static final String TAG_USER_ID = "from_user_id_str";
static final String TAG_USER_NAME = "from_user";
static final String TAG_PIC_URL="profile_image_url";
static final String TAG_TWEET_ID="id_str";
//static final String URL="http://search.twitter.com/search.json?q=";
static final String URL="https://api.twitter.com/1.1/search/tweets.json?q=";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_tweet);
String url = getIntent().getStringExtra("url");
JSONParser jParser = new JSONParser();
JSONObject json = jParser.getJSONFromUrl(url);
Log.i("deneme", json.toString());
try {
results = json.getJSONArray(TAG_RESULTS);
tweets=new String[results.length()];
user_ids=new String[results.length()];
user_names=new String[results.length()];
pic_urls=new String[results.length()];
tweet_ids=new String[results.length()];
for(int i = 0; i < results.length(); i++){
JSONObject c = results.getJSONObject(i);
tweets[i]= c.getString(TAG_TWEET);
user_ids[i]= c.getString(TAG_USER_ID);
user_names[i]= "@"+c.getString(TAG_USER_NAME);
pic_urls[i]= c.getString(TAG_PIC_URL);
tweet_ids[i]= c.getString(TAG_TWEET_ID);
}
} catch (JSONException e) {
e.printStackTrace();
}
lv= (ListView) findViewById(R.id.listView);
final LazyAdapter adapter = new LazyAdapter(this, pic_urls, user_names, tweets);
lv.setAdapter(adapter);
refreshButton= (ImageButton) findViewById(R.id.imageButton);
refreshButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(TweetActivity.this,"tık tık", Toast.LENGTH_LONG).show();
adapter.notifyDataSetChanged();
}
});
}}
我也在我的适配器上写了这个
public void notifyDataSetChanged()
{
super.notifyDataSetChanged();
}
有什么问题?
答案 0 :(得分:0)
我清理你的代码了一下。试试这个:
private static final String TAG_RESULTS="results";
private static final String TAG_TWEET="text";
private static final String TAG_USER_ID = "from_user_id_str";
private static final String TAG_USER_NAME = "from_user";
private static final String TAG_PIC_URL="profile_image_url";
private static final String TAG_TWEET_ID="id_str";
private static final String URL="https://api.twitter.com/1.1/search/tweets.json?q=";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_tweet);
mListView = (ListView) findViewById(R.id.listView);
mRefreshButton = (ImageButton) findViewById(R.id.imageButton);
if (mRefreshButton != null) {
mRefreshButton.setOnClickListener(this);
}
if (getIntent() != null) {
String url = getIntent().getStringExtra("url");
}
JSONParser jParser = new JSONParser();
JSONObject json = jParser.getJSONFromUrl(url);
Log.i("deneme", json.toString());
try {
results = json.getJSONArray(TAG_RESULTS);
tweets = new String[results.length()];
user_ids = new String[results.length()];
user_names = new String[results.length()];
pic_urls = new String[results.length()];
tweet_ids = new String[results.length()];
for (int i = 0; i < results.length(); i++) {
JSONObject c = results.getJSONObject(i);
tweets[i] = c.getString(TAG_TWEET);
user_ids[i] = c.getString(TAG_USER_ID);
user_names[i] = "@"+c.getString(TAG_USER_NAME);
pic_urls[i] = c.getString(TAG_PIC_URL);
tweet_ids[i] = c.getString(TAG_TWEET_ID);
}
} catch (JSONException e) {
e.printStackTrace();
}
LazyAdapter adapter = new LazyAdapter(this, pic_urls, user_names, tweets);
mListView.setAdapter(adapter);
}
@Override
public void onClick(View view) {
if (view == mRefreshButton) {
Toast.makeText(this,"tık tık", Toast.LENGTH_LONG).show();
((LazyAdapter) mListView.getListAdapter()).notifyDataSetChanged();
}
}