将变量从活动传递到java类

将变量从活动传递到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

我想将int从FirstActivity传递到Adapter(不是activity)。在FirstActivity中单击按钮时,会打开SecondActivity,它将创建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);
            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)