Java ListView没有';调用onCreate()时不显示任何项
调用onCreate()时,ListView不显示任何项目,但当我锁定并解锁屏幕并调用onResume()时,它会显示任何项目 “Title”是一个异步任务 有人能帮我吗Java ListView没有';调用onCreate()时不显示任何项,java,android,listview,oncreate,onresume,Java,Android,Listview,Oncreate,Onresume,调用onCreate()时,ListView不显示任何项目,但当我锁定并解锁屏幕并调用onResume()时,它会显示任何项目 “Title”是一个异步任务 有人能帮我吗 protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); final ListView lvView
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final ListView lvView = (ListView) findViewById(R.id.resList);
adapter = new CustomAdapter(this, listItems);
lvView.setAdapter(adapter);
lvView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Intent myIntent = new Intent(view.getContext(), Detailed.class);
Nachricht temp = (Nachricht) lvView.getItemAtPosition(position);
String tempTitel = temp.titel;
String tempBeschreibung = temp.beschreibung;
String tempLink = temp.link;
myIntent.putExtra("Titel", tempTitel);
myIntent.putExtra("Beschreibung", tempBeschreibung);
myIntent.putExtra("Link", tempLink);
view.getContext().startActivity(myIntent);
}
});
new Title().execute();
updateUI();
}
public void updateUI(){
adapter.notifyDataSetChanged();
}
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
最终ListView lvView=(ListView)findViewById(R.id.resList);
adapter=新的CustomAdapter(此为listItems);
setAdapter(适配器);
lvView.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
Intent myIntent=newintent(view.getContext(),Detailed.class);
Nachricht temp=(Nachricht)lvView.getItemAtPosition(位置);
字符串TENTITEL=温度滴度;
字符串tempBeschreibung=temp.beschreibung;
字符串tempLink=temp.link;
myIntent.putExtra(“滴度”,诱惑度);
myIntent.putExtra(“Beschreibung”,tempBeschreibung);
myIntent.putExtra(“链接”,tempLink);
view.getContext().startActivity(myIntent);
}
});
新标题().execute();
updateUI();
}
公共void updateUI(){
adapter.notifyDataSetChanged();
}
这是我的自定义适配器
public class CustomAdapter extends ArrayAdapter<Nachricht> {
public CustomAdapter(Context context, ArrayList<Nachricht> users) {
super(context, 0, users);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// Get the data item for this position
Nachricht user = getItem(position);
// Check if an existing view is being reused, otherwise inflate the view
if (convertView == null) {
convertView = LayoutInflater.from(getContext()).inflate(R.layout.lv_item, parent, false);
}
// Lookup view for data population
TextView tvName = (TextView) convertView.findViewById(R.id.lvItem_title);
TextView tvHome = (TextView) convertView.findViewById(R.id.lvItem_desc);
TextView links = (TextView) convertView.findViewById(R.id.link);
ImageView imgV = (ImageView) convertView.findViewById(R.id.lvItem_pic);
// Populate the data into the template view using the data object
tvName.setText(user.titel);
tvHome.setText(user.beschreibung);
links.setText(user.link);
imgV.setImageBitmap(user.bmp);
// Return the completed view to render on screen
return convertView;
}
公共类CustomAdapter扩展了ArrayAdapter{
公共CustomAdapter(上下文、ArrayList用户){
超级(上下文,0,用户);
}
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
//获取此职位的数据项
Nachricht user=getItem(位置);
//检查是否正在重用现有视图,否则会膨胀视图
if(convertView==null){
convertView=LayoutInflater.from(getContext()).flate(R.layout.lv_项,父项,false);
}
//数据填充的查找视图
TextView tvName=(TextView)convertView.findViewById(R.id.lvItem_title);
TextView tvHome=(TextView)convertView.findViewById(R.id.lvItem_desc);
TextView links=(TextView)convertView.findViewById(R.id.link);
ImageView imgV=(ImageView)convertView.findViewById(R.id.lvItem_pic);
//使用数据对象将数据填充到模板视图中
tvName.setText(user.titel);
tvHome.setText(user.beschreibung);
links.setText(user.link);
setImageBitmap(user.bmp);
//返回要在屏幕上渲染的已完成视图
返回视图;
}
}
“Title”是一个异步任务
这意味着当updateUI()时,它很可能仍然很忙代码>在UI线程上执行。你必须确保
adapter.notifyDataSetChanged();
没有过早执行,因此将语句放在AsyncTask
的onPostExecute()方法中
“Title”是一个异步任务
这意味着当updateUI()时,它很可能仍然很忙代码>在UI线程上执行。你必须确保
adapter.notifyDataSetChanged();
没有过早执行,因此将语句放在AsyncTask
的onPostExecute()方法中。有可能在新标题()之前调用updateUI()get。execute()
返回任何数据?因此,用户界面更新时没有数据,也没有显示任何内容 有可能在new Title()之前调用updateUI()get。execute()
返回任何数据?因此,用户界面更新时没有数据,也没有显示任何内容 你在适配器内部创建了什么吗?是的,我创建了:我向listItems ArrayList添加了一个自定义类,就像我说的,当锁定和解锁屏幕时,它会工作。。。我没有重写onResume()。请发布您的整个活动和适配器。在调用onCreate方法时,您确定listItems不是空的吗?您是否在适配器内创建了一些内容?是的,我是这样做的:我向listItems ArrayList添加了一个自定义类,如我所说,当锁定和解锁屏幕时,它会工作。。。我没有重写onResume()。请发布您的整个活动和适配器。调用onCreate方法时,您确定listItems不是空的吗?这就是解决方案。谢谢;)我没有想到这是解决办法。谢谢;)我没想过