-2

最初に、私は Android と Java を初めて使用することに言及する必要があります。Serializable クラスにデータを入力する json http オブジェクトをコーディングし、それらからリストビューにデータを入力すると、すべて正常に動作しますが、Serializable クラスの 1 つの文字列を使用して、別の xml レイアウトにあるテキストビューにデータを入力しようとしています。

シリアライズ可能なクラス

    public class FeedItem   implements Serializable {

    private static final long serialVersionUID = 1L;
     private int test1;
    private String title;
    private String date;
    private String attachmentUrl;
    private String id;
    private String content;
    private String url;
    private String tiitle = "sfsf";




    public String getUrl() {
            return url;
    }

    public void setUrl(String url) {
            this.url = url;
    }

    public String getContent() {
            return content;
    }

    public void setContent(String content) {
            this.content = content;
    }

    public String getId() {
            return id;
    }

    public void setId(String id) {
            this.id = id;
    }

    public String getTitle() {
            return title;
    }

    public void setTitle(String title) {
            this.title = title;
    }

    public String getDate() {
            return date;
    }

    public void setDate(String date) {
            this.date = date;
    }

    public String getAttachmentUrl() {
            return attachmentUrl;
    }

    public void setAttachmentUrl(String attachmentUrl) {
            this.attachmentUrl = attachmentUrl;
    }

    @Override
    public String toString() {
            return "[ title=" + title + ", date=" + date + "]";



    }


      public void save(){
FeedItem feed = new FeedItem();

 Intent intent =  new Intent();
 Bundle extras = new Bundle();
    intent.putExtra("title", feed);

そして、テキストビューに入力したいフラグメントクラス

public void UpdateList(){
  TextView infoz = (TextView) getView().findViewById(R.id.infoz);
      Intent intent = getActivity().getIntent();
        Bundle extras = intent.getExtras();
        String title = (String) getActivity().getIntent().getSerializableExtra("title");
        Toast.makeText(getActivity(), title, Toast.LENGTH_LONG).show(); 

}

トーストは空です。

4

2 に答える 2

0

Bundle に Serializable オブジェクトを配置しています (Eclipse では、メソッド名の上にマウスを移動すると、署名が表示されます。この場合は、putExtra(String name, Serializable extra) になります)。タイトル文字列を取得するには、最初に FeedItem オブジェクトを取得してから、次のように文字列を取得する必要があります。

intent.putExtra("title", feed);

String title = ((FeedItem)getActivity().getIntent().getSerializableExtra("title")).getTitle();

または、必要な場合は、タイトルを余分に入れることもできます。

intent.putExtra("title", feed.getTitle()); 

次に、次のようなタイトルを取得します。

String title = getActivity().getIntent().getStringExtra("title");
于 2013-11-08T16:26:18.833 に答える
0

これは、インテントからタイトルを取得するために使用しているコードです:

String title = (String) getActivity().getIntent().getSerializableExtra("title");

これにより、キー「タイトル」でエクストラが抽出され、逆シリアル化されますが、これをString. Stringextrasに a を入れたのではなく、そこにオブジェクトBundleを入れました。FeedItemこれを行う必要があります:

FeedItem feedItem = (FeedItem)getActivity().getIntent().getSerializableExtra("title");
String title = feedItem.getTitle();

また、投稿したこのコード:

public void save(){
    FeedItem feed = new FeedItem();
    Intent intent =  new Intent();
    Bundle extras = new Bundle();
    intent.putExtra("title", feed);

意味がありません。まず、 の新しいインスタンスを作成しますFeedItem。この新しいインスタンスには空のtitle. 次に、Bundlecalledを作成しますextrasが、何もしません。そして第三に、Intentあなたが送信している が実際に必要なオブジェクトをエクストラに持っていることを確信していますか? デバッガーまたはデバッグ ロギングでこれを確認してください。

于 2013-11-08T16:54:01.033 に答える