【发布时间】:2020-10-01 20:41:35
【问题描述】:
如何在 Android 中的活动之间传递数据?
示例:我创建了一个群组 CardView 在第二个活动中,我收集了这张卡片 (它向用户显示此活动中有多少卡)
我想将卡号传递给第一个活动
第二次活动
public class Skin extends AppCompatActivity {
private Toolbar toolbar;
public TextView tx;
private static int mysize;
public List<SettersAndGetters> lstPress;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_mainm);
TextView tt = (TextView) findViewById(R.id.titel_card);
Button add = (Button) findViewById(R.id.add);
toolbar = (Toolbar) findViewById(R.id.toolbar20);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayShowTitleEnabled(false);
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v)
{
v.setFocusableInTouchMode(true);
v.requestFocus();
onBackPressed();
}
});
add.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(Skin.this, ADD.class);
startActivity(intent);
}
});
//The contents of the card that you collected
tt.setText(R.string.cn1);
lstPress = new ArrayList<>();
lstPress.add(new SettersAndGetters(R.string.cr5, R.string.c2, R.string.com1, R.string.des5, R.drawable.p5, 120, 55, 10000005));
lstPress.add(new SettersAndGetters(R.string.cr1, R.string.c2, R.string.com1, R.string.des1, R.drawable.p2, 12, 12, 1800000));
lstPress.add(new SettersAndGetters(R.string.cr1, R.string.c2, R.string.com1, R.string.des1, R.drawable.p2, 12, 12, 1800000));
lstPress.add(new SettersAndGetters(R.string.cr1, R.string.c2, R.string.com1, R.string.des1, R.drawable.p2, 12, 12, 1800000));
lstPress.add(new SettersAndGetters(R.string.cr1, R.string.c2, R.string.com1, R.string.des1, R.drawable.p2, 12, 12, 1800000));
lstPress.add(new SettersAndGetters(R.string.cr1, R.string.c2, R.string.com1, R.string.des1, R.drawable.p2, 12, 12, 1800000));
tx = (TextView) findViewById(R.id.c);
int size = lstPress.size(); //here This line works great for me, but I want it in the first class (pass it to a class before it)
tx.setText("" + size);
mysize=size;
Toast.makeText(getApplicationContext(),"Size="+size,Toast.LENGTH_LONG).show();
RecyclerView myr = (RecyclerView) findViewById(R.id.recycler_view);
RecyclerViewAdapter myAdapter = new RecyclerViewAdapter(this, lstPress);
myr.setLayoutManager(new GridLayoutManager(this, 2));
myr.setAdapter(myAdapter);
}
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
return true;
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_add, menu);
// Inflate switch
ImageButton re = (ImageButton) menu.findItem(R.id.item_switch2)
.getActionView().findViewById(R.id.back2);
re.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
onBackPressed();
Toast.makeText(Skin.this, "hhi", Toast.LENGTH_SHORT).show();
}
});
ImageButton btnubload = (ImageButton) menu.findItem(R.id.item_switch2)
.getActionView().findViewById(R.id.btnaddUPLOAD);
btnubload.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(Skin.this, ADD.class);
startActivity(intent);
}
});
return true;
}
@Override
protected void attachBaseContext(Context newBase) {
super.attachBaseContext(ViewPumpContextWrapper.wrap(newBase));
}
@Override
public boolean onSupportNavigateUp() {
onBackPressed();
return true;
}
public static int getMysize(){
return mysize;
}
}
MainActivity 是第一个活动
public class MainActivity extends AppCompatActivity implements BootShett.BottomSheetListener {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_mainm);
TextView tt = (TextView) findViewById(R.id.Number_of_badges)
int c=Skin.getMysize();
tt.setText(""+c);
}
【问题讨论】:
标签: java android android-studio class