变量保持空

时间:2015-05-12 11:35:43

标签: android android-intent

我试图在活动之间传递一个字符串,从YtAdapter到收藏夹。 YtAdapter:

        mHolder.mVideoFavorite.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            //////////////////////////////////////////////////////////////
            // Need to send SearchResult result from here to favorites //
            ////////////////////////////////////////////////////////////

            AppUtils.showToast(result.getSnippet().getTitle() + " Was added to favorites.");
            Intent intent = new Intent(mActivity,Favorites.class);
            String vidId,vidTitle,vidThumbnail;

            vidId = result.getId().getVideoId(); //Video ID
            vidTitle = result.getSnippet().getTitle(); //Video Title
            vidThumbnail = result.getSnippet().getThumbnails().getMedium().getUrl(); //Video Thumbnail

            intent.putExtra("id",vidId);
            intent.putExtra("title",vidTitle);
            intent.putExtra("thumbnail",vidThumbnail);

        }
    });

并尝试在收藏夹中获取它:

      /*Getting video information from YtAdapter*/
    vidID = getIntent().getStringExtra("id"); <--- Stays null
    vidTitle = getIntent().getStringExtra("title"); <--- Stays null
    vidThumbnail = getIntent().getStringExtra("thumbnail"); <--- Stays null

我从第3次活动访问Favorties,而非直接从YtAdapter访问.Favorties。

2 个答案:

答案 0 :(得分:0)

在你的主要课程中试试这个:

Intent i = new Intent(ListViewActivity.this, EditContact.class);
        Bundle bundle = new Bundle();
bundle.putInt("index", itemId);
        bundle.putBoolean("AddContact", false);
        i.putExtras(bundle);
        startActivity(i);

您可以在其他类中获取您的数据:

Bundle bundle = getIntent().getExtras();
        if (bundle != null) {
            Int index = bundle.getInt("index");
            Boolean bool = bundle.getBoolean("AddContact");
            if (bool ) {
                setTitle("Add Contact");
            } else {
                setTitle("Edit Contact");                        
        }

我希望它会有所帮助。

答案 1 :(得分:0)

您可以将所有参数强制为字符串值:

            intent.putExtra("id",vidId +"");
            intent.putExtra("title",vidTitle+"");
            intent.putExtra("thumbnail",vidThumbnail+"");

很可能他们并没有和你一起得到&#34; getStringExtra&#34;。

但更好的选择是你使用正确的&#34; getter&#34;额外的。

--- ---编辑 您可以通过以下方式检查活动的关键字和值:

for(String key : getIntent().getExtras().keySet()){
    Log.d("TEST", "key: " + key);
    Log.d("TEST", "value: " + getIntent().getExtras().get(key));
}