Java 当我第二次从另一个活动向MainActivity发送数据时,我得到的数据是我所需要的;我已经是第一次了
我开发了一个带有两个文本视图的卡片的简单应用程序。只有两项活动。在第二个活动中,我输入数据并将其发送给MainActivity,以便在卡上显示。 当我用数据创建第一张卡时,一切都很好,但如果我想用另一张数据创建另一张卡,我会使用与第一次完全相同的数据卡` 主要活动:Java 当我第二次从另一个活动向MainActivity发送数据时,我得到的数据是我所需要的;我已经是第一次了,java,android,Java,Android,我开发了一个带有两个文本视图的卡片的简单应用程序。只有两项活动。在第二个活动中,我输入数据并将其发送给MainActivity,以便在卡上显示。 当我用数据创建第一张卡时,一切都很好,但如果我想用另一张数据创建另一张卡,我会使用与第一次完全相同的数据卡` 主要活动: public class MainActivity extends ActionBarActivity { private RecyclerView recyclerView; private RecyclerVie
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++;
}
}
此外,我还有一个带有2个字符串的DataObject类、构造函数、getter和recycler适配器,它们工作得很好 在活动之间传递数据的一种更简单、更快但不是更强的方法是使用带有静态变量的公共静态类。正如我之前所说,这可能不是正确的方法,但它是有效的。这不是火箭科学,但如果你创建小项目,它是非常有用的 据我所知,您实际上没有将任何具有
意图的数据从main活动
传递到AddNewCard
活动。
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();
}
});
}
}