Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 当我第二次从另一个活动向MainActivity发送数据时,我得到的数据是我所需要的;我已经是第一次了_Java_Android - Fatal编程技术网

Java 当我第二次从另一个活动向MainActivity发送数据时,我得到的数据是我所需要的;我已经是第一次了

Java 当我第二次从另一个活动向MainActivity发送数据时,我得到的数据是我所需要的;我已经是第一次了,java,android,Java,Android,我开发了一个带有两个文本视图的卡片的简单应用程序。只有两项活动。在第二个活动中,我输入数据并将其发送给MainActivity,以便在卡上显示。 当我用数据创建第一张卡时,一切都很好,但如果我想用另一张数据创建另一张卡,我会使用与第一次完全相同的数据卡` 主要活动: public class MainActivity extends ActionBarActivity { private RecyclerView recyclerView; private RecyclerVie

我开发了一个带有两个文本视图的卡片的简单应用程序。只有两项活动。在第二个活动中,我输入数据并将其发送给MainActivity,以便在卡上显示。 当我用数据创建第一张卡时,一切都很好,但如果我想用另一张数据创建另一张卡,我会使用与第一次完全相同的数据卡` 主要活动:

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();
            }
        });

    }
}