можете ли вы опубликовать остаток своей деятельности? Особенно часть, которую вы используете для загрузки списка в первый раз.
Вероятно, нет необходимости перезапускать всю активность. Вам просто нужно переместить часть вашего кода, которая заполняет список, в свой собственный метод. Затем вы можете вызвать этот метод, когда пользователь захочет обновить.
Если ничего не изменилось, вы должны изменить:
Intent reload = new Intent(getApplicationContext(), TwitterActivity.class);
до
Intent reload = new Intent(TwitterActivity.this, TwitterActivity.class);
EDIT:
Вам нужно переместить свой блок try / catch в новый метод с именем refresh (). Затем вызывайте этот метод каждый раз, когда вы хотите перезагрузить список. как это:
Также было бы неплохо вывести свою сеть из основного потока.
public class TwitterActivity extends ListActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.twitteract);
Button refresh = (Button) findViewById(R.id.btn_refresh);
//Listening to button event
refresh.setOnClickListener(new View.OnClickListener() {
public void onClick(View arg0) {
refresh();
}
});
refresh();
}
private void refresh(){
try{
// Create a new HTTP Client
DefaultHttpClient defaultClient = new DefaultHttpClient();
// Setup the get request
HttpGet httpGetRequest = new HttpGet("https://api.twitter.com/1/statuses/user_timeline.json?screen_name=evostikleague&count=10");
// Execute the request in the client
HttpResponse httpResponse = defaultClient.execute(httpGetRequest);
// Grab the response
BufferedReader reader = new BufferedReader(new InputStreamReader(httpResponse.getEntity().getContent(), "UTF-8"));
String json = reader.readLine();
Log.v(json,"jsonfeed");
List<String> items = new ArrayList<String>();
//items.add(json);
JSONArray jArray = new JSONArray(json);
for (int i=0; i < jArray.length(); i++)
{ JSONObject oneObject = jArray.getJSONObject(i);
items.add(oneObject.getString("text"));
Log.i("items", "items");
}
setListAdapter ( new ArrayAdapter<String>(this, R.layout.single_item, items));
ListView list = getListView();
list.setTextFilterEnabled(true);
list.setOnItemClickListener(new OnItemClickListener(){
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
// TODO Auto-generated method stub
Toast.makeText(getApplicationContext(), ((TextView) arg1).getText(),1000).show();
}
});
} catch(Exception e){
// In your production code handle any errors and catch the individual exceptions
e.printStackTrace();
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId() == R.id.home) {
startActivity(new Intent(TwitterActivity.this, HomeActivity.class));
return(true);
}
if (item.getItemId() == R.id.match) {
startActivity(new Intent(TwitterActivity.this, MatchActivity.class));
return(true);
}
if (item.getItemId() == R.id.teams) {
startActivity(new Intent(TwitterActivity.this, TeamsActivity.class));
return(true);
}
if (item.getItemId() == R.id.twitter) {
startActivity(new Intent(TwitterActivity.this, TwitterActivity.class));
return(true);
}
if (item.getItemId() == R.id.info) {
startActivity(new Intent(TwitterActivity.this, InfoActivity.class));
return(true);
}
return(super.onOptionsItemSelected(item));
}
}