在我的android应用程序中,我总是使用类的直接putExtra()函数Intent将任意数量的值传递给new Activity.
像这样:
Intent i = new Intent(this, MyActivity.class);
i.putExtra(ID_EXTRA1, "1");
i.putExtra(ID_EXTRA2, "111");
startActivity(i);
Run Code Online (Sandbox Code Playgroud)
我Bundle在Android中知道,我看到人们正在使用Bundle将值传递给新的Activity.
像这样:
Intent intent = new Intent(this, MyActivity.class);
Bundle extras = new Bundle();
extras.putString("EXTRA_USERNAME","my_username");
extras.putString("EXTRA_PASSWORD","my_password");
intent.putExtras(extras);
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)
在这里,我有两个疑问.如果我可以直接将值传递给new ,我
为什么要使用?
使用而不是直接使用有什么好处?BundleActivityIntentBundleIntent putExtra()
首先,对于一些Android老手而言,这个问题可能听起来真的很荒谬,但作为新手,我真的需要问这个问题:
An Intent是一种被动数据结构,可以将信息从一个Activity传递到另一个.An Intent还能够以名称 - 值对(via putExtra())的形式保存数据.
但是在覆盖onCreate()方法的同时,我们将a Bundle作为参数传递,最终还以名称 - 值对的形式保存值,并且能够借助于存储信息onSaveInstanceState().
在这种情况下,为什么我们需要两者并区分两者?
更新
我想我已经让你们误解了我误解了什么Intent是:
当我说" Intent一个被动数据结构将信息从一个Activity传递到另一个"时,我想指出的是即使是一个Intent可以携带借助putExtra()方法获取信息(上下文和动作描述除外).为什么我们需要使用Bundle呢?
另外,请确保您在下面的评论中留下理由,以防您向下/向上投票.谢谢你的慷慨.
我是Android应用程序开发的新手,无法理解bundle实际上为我们做了什么.
有谁可以帮我解释一下?
Bundle Vs java.util集合与HashMap有什么区别?
在我的android*项目*我必须跟踪一定数量的产品的产品细节.这些产品上的所有数据都存储在SQLite数据库中.我可以在SQLite中使用select和update来跟踪产品对象.因此,我可以在更改时存储产品详细信息.此外,我可以在开始时将所有产品加载到哈希映射或此类数据结构中,并跟踪这些产品对象.什么事情对我来说是出于上述两个哪一个更有效和高效.有人能帮我吗.谢谢!
我在片段类中有一个listview,它从JSON获取数据.到目前为止,我能够在列表视图中显示数据.(这里的数据是新闻项目).我想在列表视图中点击特定新闻时显示新闻的详细页面.
例如:列表视图仅包含新闻的标题和图像.单击该列表视图时,它应显示该特定新闻片段的详细版本.我怎样才能做到这一点?
这是具有Listview的片段类.
package com.fortuna.cinemalk;
import java.util.ArrayList;
import android.app.Activity;
import android.app.FragmentManager;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentTransaction;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.GridView;
import android.widget.ListView;
import android.content.Intent;
import android.widget.AdapterView;
import com.fortuna.cinemalk.adapter.LazyAdapter;
import com.fortuna.cinemalk.model.BaseElement;
import com.fortuna.cinemalk.service.CommonVariable;
import com.fortuna.cinemalk.service.JSONServices;
import com.fortuna.cinemalk.util.Element;
public class NewsFramgment extends Fragment {
private GridView gridView;
private ListView listView;
private ArrayList<BaseElement> News;
private LazyAdapter adapter;
private Activity activity;
private CommonVariable commonVariable;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) …Run Code Online (Sandbox Code Playgroud)