将变量从活动传递到java类
我想将int从FirstActivity传递到Adapter(不是activity)。在FirstActivity中单击按钮时,会打开SecondActivity,它将创建Adapter的实例,并在列表视图中显示其内容 第一项活动:将变量从活动传递到java类,java,android,android-activity,Java,Android,Android Activity,我想将int从FirstActivity传递到Adapter(不是activity)。在FirstActivity中单击按钮时,会打开SecondActivity,它将创建Adapter的实例,并在列表视图中显示其内容 第一项活动: viewBtn.setOnClickListener(new View.OnClickListener(){ @Override public void onClick(View v) { number = 5
viewBtn.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
number = 5; //this is an integer
Intent in = new Intent(FirstActivity.this, SecondActivity.class);
startActivity(in);
}
});
viewBtn.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
number = 5; //this is an integer
Intent in = new Intent(FirstActivity.this, SecondActivity.class);
in.putExtra("name of your value (eg. adapter_int)", number);
startActivity(in);
}
});
Intent intent = getIntent();
int yourInt = intent.getExtra("name of your value (eg. adapter_int)", 0); // 0 is a default value
第二项活动:
TheAdapter adapter = new TheAdapter(this, 0);
myListView.setAdapter(adapter);
viewBtn.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
number = 5; //this is an integer
Intent in = new Intent(FirstActivity.this, SecondActivity.class);
in.putExtra("name of your value (eg. adapter_int)", number);
startActivity(in);
}
});
Intent intent = getIntent();
int yourInt = intent.getExtra("name of your value (eg. adapter_int)", 0); // 0 is a default value
我想从FirstActivity中获取整数,以便在适配器中使用它。First Activity:
viewBtn.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
number = 5; //this is an integer
Intent in = new Intent(FirstActivity.this, SecondActivity.class);
in.putExtra("name of your value (eg. adapter_int)", number);
startActivity(in);
}
});
Intent intent = getIntent();
int yourInt = intent.getExtra("name of your value (eg. adapter_int)", 0); // 0 is a default value
第二项活动:
viewBtn.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
number = 5; //this is an integer
Intent in = new Intent(FirstActivity.this, SecondActivity.class);
in.putExtra("name of your value (eg. adapter_int)", number);
startActivity(in);
}
});
Intent intent = getIntent();
int yourInt = intent.getExtra("name of your value (eg. adapter_int)", 0); // 0 is a default value
//在第二次活动中
Bundle bundle = this.getIntent().getExtras();
//for example int param
int param = 0;
if(bundle == null){
Log.e(TAG, "bundle is null.");
}else{
param = bundle.getInt(key);
}
如果您想要传递对象(可序列化对象),它应该很有用
public class Serializer {
public static byte[] serialize(Object obj) throws IOException {
try(ByteArrayOutputStream b = new ByteArrayOutputStream()){
try(ObjectOutputStream o = new ObjectOutputStream(b)){
o.writeObject(obj);
}
return b.toByteArray();
}
}
public static Object deserialize(byte[] bytes) throws IOException, ClassNotFoundException {
try(ByteArrayInputStream b = new ByteArrayInputStream(bytes)){
try(ObjectInputStream o = new ObjectInputStream(b)){
return o.readObject();
}
}
}
}这很有效,我通过它的构造函数将它传递到另一个类中,谢谢,您可以将参数default value添加到bundle.getInt(key,defaultValue)