我正在使用服务和广播接收器来启动列表视图, 我只使用两个活动类,第一个类开始它启动它的服务..在服务中提示web服务和解析数据,n将数据传递到广播接收器, 现在数据进入onreceive,并将该数据存储到另一个数据...现在我想把这些数据存入我的活动类中,我将用于listView ...请告诉我该怎么做...没有做到这一点变种。静态.....
我也用另一种方式尝试过这件事,如果有可能那样的话...... 第一个屏幕正在启动那里我保持一个按钮,因为我点击按钮服务将启动n将完成整个工作,因为我写上面.....但在这里,因为我点击按钮另一个acvity正在启动,这是listview但这并没有扩展listActivity正在扩展活动.... 所以我想动态更新该列表视图我该怎么做... 请任何帮助是适当的......
我的代码在这里被卡住了
public class MessageList extends Activity {
public static final String TAG = MessageList.class.getSimpleName();
Context mContext;
public static ArrayList<String> mData;
public ListView mListView;
private List<Message> messages;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.maina);
System.out.println("check bro"+mData);
System.out.println("In OnCreate of Messagelist class");
System.out.println("1st");
System.out.println("3rd");
mListView = (ListView) findViewById(R.id.mylist);
PlaceAdapter adapter = new PlaceAdapter(this, mData);
mListView.setAdapter(adapter);
}
private OnItemClickListener mItemClickListener = new OnItemClickListener() {
@Override
public void onItemClick(android.widget.AdapterView<?> arg0, View arg1, int arg2, long arg3) {
Intent viewMessage = new Intent(Intent.ACTION_VIEW,Uri.parse(messages.get(arg2).getLink().toExternalForm()));
startActivity(viewMessage);
}
};
/* @Override
protected void onListItemClick(ListView l, View v, int position, long id)
{
super.onListItemClick(l, v, position, id);
Intent viewMessage = new Intent(Intent.ACTION_VIEW, Uri.parse(messages
.get(position).getLink().toExternalForm()));
this.startActivity(viewMessage);
}*/
class MessageListBroadCast extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
System.out.println("hello");
System.out.println("final Done");
Bundle bundle = intent.getExtras();
mData = bundle.getStringArrayList("keya");
Log.d(TAG, "" + mData);
intent.putExtra("name", mData);
}
};
}
massege list是列表视图的类 谢谢
答案 0 :(得分:1)
我不会像这样工作,而是使用CursorAdapter
派生的Adapter
类,让您的服务将结果存储在ContentProvider
中,并通知您ContentResolver
的更改您在Uri
中使用的CursorAdapter
上的{{1}}。这样它会自动刷新,如果您的应用程序发生任何事情(崩溃,内存,......),您的数据不会丢失。但我认为这可能是一些开销,这完全取决于你的webservice究竟做了什么等。