我在页面中有一个列表视图,在ListView内部点击了一个按钮,我想用新的数据集重新加载页面。
package com.examples.listzones;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;
public class MyActivity extends Activity implements
AdapterView.OnItemClickListener, View.OnClickListener {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ListView list = new ListView(this);
setContentView(list);
String[] items = { "Tom", "Sally", "Bill", "John", "Santiago", "Isabella" };
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
R.layout.review, R.id.textView1, items) {
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View row = super.getView(position, convertView, parent);
View text = row.findViewById(R.id.seemore);
text.setTag(position);
text.setOnClickListener(MyActivity.this);
return row;
}
};
list.setAdapter(adapter);
list.setOnItemClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.seemore:
// RELOAD THE PAGE WITH NEW SET OF DATA
break;
default:
break;
}
}
@Override
public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
Toast.makeText(this, "Item Click " + position, Toast.LENGTH_SHORT).show();
}
}
OnClick内部我想用新数据集加载页面。
答案 0 :(得分:2)
您不必重新启动活动。您可以将新数据放入适配器并通知适配器数据集已更改。
adapter.clear();
adapter.addAll("new 1"," new 2","new 3");
adapter.notifyDataSetChanged();
答案 1 :(得分:0)
在onCreate()
中写下面的代码Intent thisIntent = getIntent();
在下面写下您要重新启动活动的代码
startActivity(thisIntent);
finish();
答案 2 :(得分:0)
按下按钮可以更新适配器。不要忘记之后在适配器上调用notifyDatasetChanged。您也可以用新的适配器替换当前的适配器
不要在android中看到这样的页面
答案 3 :(得分:0)
您可以将初始化内容从onCreate() - 方法移动到专用方法,例如然后你可以从你的onItemClick()调用init()。
或者,您可以使用ListView适配器的notifyDataSetChanged()方法。