[英]How to send non-string data across activity
在twitterfragment類中,我有
List<twitter4j.Status> statuses = twitter.getUserTimeline(user);
Intent intent = new Intent(getActivity(), twitter_timeline.class);
intent.putExtra(twitter_timeline.STATUS_LIST, statuses);// this line giving error if I pass status
在twitter_timeline類中,我想獲取從twitter片段發送的雕像。
public class twitter_timeline extends Activity {
public static List<twitter4j.Status> STATUS_LIST;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_twitter_timeline);
setTitle("Timeline");
List<twitter4j.Status> statuses = (Status) this.getIntent().getStringArrayExtra(STATUS_LIST); // this line not resolving even if I cast it to status type
}
這里的意圖是希望在函數getIntent.getStringArrayExtra(...)中獲取StringArray,但是我已經從片段中發送了Twitter Status。
因為twitter4j.Status類實現了Serializable,所以您應該能夠創建Serializable包裝器類,並將其通過Intent Extras發送。
在MyStatuses.java中創建一個MyStatuses類:
import java.io.Serializable;
public class MyStatuses implements Serializable {
List<twitter4j.Status> statuses;
}
然后在Intent Extras中發送包裝類的實例:
List<twitter4j.Status> statuses = twitter.getUserTimeline(user);
MyStatuses myStatuses = new MyStatuses();
myStatuses.statuses = statuses;
Intent intent = new Intent(getActivity(), twitter_timeline.class);
intent.putExtra("statuses", myStatuses);
然后使用getSerializable()以獲得Intent Extra:
public class twitter_timeline extends Activity {
//public static List<twitter4j.Status> STATUS_LIST;
List<twitter4j.Status> statuses;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_twitter_timeline);
setTitle("Timeline");
Bundle b = this.getIntent().getExtras();
if (b != null) {
MyStatuses myStatuses = (MyStatuses) b.getSerializable("statuses");
statuses = myStatuses.statuses;
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.