gpt4 book ai didi

java - 当我第二次将数据从另一个 Activity 发送到 MainActivity 时,我得到的数据是我第一次得到的

转载 作者:太空狗 更新时间:2023-10-29 14:54:51 26 4
gpt4 key购买 nike

我开发了一个简单的应用程序,其中包含带有 2 个 TextView 的卡片。只有 2 个 Activity 。在第二个 Activity 中,我将数据发送到 MainActivity 以在卡片上显示。当我用数据创建第一张卡片时,一切都很好,但如果我想用另一个数据创建另一个卡片,我会在 MainActivity 上获得与第一次数据完全相同的卡片。 `主要 Activity :

public class MainActivity extends ActionBarActivity {
private RecyclerView recyclerView;
private RecyclerView.Adapter adapter;
private RecyclerView.LayoutManager layoutManager;
public ArrayList<DataObject> dataObject;
FloatingActionButton fab;
int i = 0;


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
dataObject = new ArrayList<>();
recyclerView = (RecyclerView) findViewById(R.id.recycler_view);
recyclerView.setHasFixedSize(true);
layoutManager = new LinearLayoutManager(this);
recyclerView.setLayoutManager(layoutManager);
adapter = new RecyclerAdapter(dataObject);
recyclerView.setAdapter(adapter);
fab = (FloatingActionButton) findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this, AddNewCard.class);
startActivityForResult(intent, 1);
}
});
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if(data==null)
return;
String title = data.getStringExtra("title");
String text = data.getStringExtra("text");
dataObject.add(i, new DataObject(title, text));
i++;

}
}

以及第二个activity的代码:

public class AddNewCard extends ActionBarActivity {
TextView mTitle, mText;
Button mButton;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_add_new_card);
initElements();
}

private void initElements() {
mTitle = (TextView) findViewById(R.id.editTitle);
mText = (TextView) findViewById(R.id.editGoal);
mButton = (Button) findViewById(R.id.sendButton);
mButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent();
intent.putExtra("title", mTitle.getText().toString());
intent.putExtra("text", mText.getText().toString());
setResult(RESULT_OK, intent);
finish();
}
});

}
}

我还有带有 2 个字符串的 DataObject 类、构造函数和 getter 以及回收器适配器,它们工作正常。

最佳答案

在 Activity 之间传递数据的一种更简单、更快但不是更强大的方法是使用带有静态变量的公共(public)静态类。正如我之前所说,这可能不是正确的方法,但它确实有效。这不是火箭科学,但如果您创建小型项目,它会非常有用。

关于java - 当我第二次将数据从另一个 Activity 发送到 MainActivity 时,我得到的数据是我第一次得到的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32537807/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com