Java 如何将值从一个类发送到不同的类(多个类)
我有valueJava 如何将值从一个类发送到不同的类(多个类),java,android,bundle,Java,Android,Bundle,我有valuestrUser和KEY,我想将此值发送到多个不同的类,因为此值将在5个类中用于url,我知道仅使用Intent将值发送到一个类的方法。putExtra如下所示: Intent policy= new Intent(LoginActivity.this,EpolicyListPolis.class); policy.putExtra("etUser",strUser); policy.putExtra("key",KEY); start
strUser
和KEY
,我想将此值发送到多个不同的类,因为此值将在5个类中用于url,我知道仅使用Intent将值发送到一个类的方法。putExtra
如下所示:
Intent policy= new Intent(LoginActivity.this,EpolicyListPolis.class);
policy.putExtra("etUser",strUser);
policy.putExtra("key",KEY);
startActivity(policy);
如何一次将此值发送到多个不同的类?我可以使用SharedReferences吗。。?我如何在类和目标类中编写SharedReferences?如果您使用依赖项注入,请创建一个模型,将您的状态保存在值对象中。 然后将此模型注入到您的活动中
或者简单地创建一个可以从任何地方引用的单例状态对象。您只需在其他活动中获取这些内容即可-- 或者 您可以在类中设置这些值,并根据需要从中获取这些值。您可以使用 用于将值存储到
SharedReferences
:
SharedPreferences settings = getSharedPreferences("PREFS_NAME", 0);
SharedPreferences.Editor editor = settings.edit();
editor.putString("etUser", strUser);
editor.putString("key",KEY);
editor.commit();
只需在调用startActivity(policy)之前粘贴这些行代码>
并从SharedReferences
SharedPreferences settings = getSharedPreferences("PREFS_NAME", 0);
String etUser1 = settings.getString("etUser", null);
String key1 = settings.getString("key", null);
然后将这些行粘贴到所需的etUser1
和key1
位置。您可以在任何活动
中访问此SharedReferences
值。如果你不能,请看一看。这可能对你有帮助
我希望这会对您有所帮助。我不太确定您想要做什么,但是我想,如果我要在一个类和另一个类之间使用变量,我会将变量设置为静态,并从类中“获取”该变量的值
例如,在一个类中,我有一个变量:
public class Login extends Activity {
static String username;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.login_layout);
username = "Your Name";
}
在另一个类中,我会得到这样的值
String var;
var = Login.username;
但正如我所读到的,这不是最好的做法。有时这就足够了。首先,使用getIntent()
方法获取开始活动的意图:
Intent intent = getIntent();
如果额外数据表示为字符串,则可以使用intent.getStringExtra()
方法
String etUser = intent.getStringExtra("etUser");
String key = intent.getStringExtra("key");
有关更多详细信息,请参阅。试试这个
使用意图从此类发送值
Intent policy= new Intent(LoginActivity.this,EpolicyListPolis.class);
policy.putExtra("key",strUser);
startActivity(policy);
这类似于:键-“键”和值-strUser。
使用KEY从另一个类获得这个值
像这样获得价值
String user = getIntent().getExtras().getString("key",null);
在user中,您将获得strUser值。如果strUser未传递任何默认值null(“键”右侧)以外的值作为用户的签名
你所需要的所有课程中使用的相同内容。。。但请记住,所有的工作与关键
因为键(一种类型的ID)仅适用于放置和获取特定值…我想告诉您使用应用程序类。最好从下面的链接获取参考
最好使用这个应用程序,因为您可以访问每个类中的所有变量,而无需从intent发送
这将对您有所帮助。应用程序对象是某种方式,我会选择EventBus(如Square的OTTO或Greenrobot)。
在应用程序上下文上进行转换往往会在一段时间后产生“上帝对象”问题。你应该避免这样。共享引用也是一个不错的选择。您可以使用Bundle将数据从一个活动类传递到另一个活动类,如下所示
Bundle bundle = new Bundle();
bundle.putString("Id", videoChannelId);
bundle.putString("C/V", "C");
bundle.putString("mode", "ch");
bundle.putString("code", "LiveTV");
bundle.putString("urlcount", "2");
Intent intent = new Intent(First.this,Second.class);
intent.putExtras(bundle);
startActivity(intent);
通过提供bundle id来获取第二个类中的数据
Bundle getBundle = this.getIntent().getExtras();
name = getBundle.getString("Url")
etc......
所有这5个类都在扩展活动类吗?再次使用意图将该类的值发送给另一个类,或者使用应用程序类。所有值都是静态的吗?它们都是按类更改的还是固定的?您能解释更多吗。。?如果我想发送值strUser和KEY呢?我已经试过了。但我似乎无法在我的任何活动之间共享数据…@AoyamaNanami有关完整代码示例,请参阅我的博客文章Aoyaman。您可以在共享首选项中存储和检索任何值。我只想将值strUser和KEY发送到不同的类多个类您的意图一次只重定向到一个类,然后依次将其用于所有需要的类。。。值通过putExtra()传递和通过getExtra()获取。有关getExtra()检查的更多详细信息..以及关于putExtra()检查…如何在其他类中调用它?只需在其他活动的onCreate()方法中调用它即可。如果类没有扩展到活动,那么在类中设置值,并从中获取所需的类。我仍然不理解。。。你能解释一下细节吗?制作一个类…设置vales etUser并输入它,制作方法来获取这些vales…并进入你需要的类。你能告诉我细节吗?
Bundle getBundle = this.getIntent().getExtras();
name = getBundle.getString("Url")
etc......