0

这是第一个活动的代码:

package com.android.shopping;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ListView;
import android.widget.TextView;

public class MainActivity extends Activity implements OnClickListener{

    Button btn;
    ListView lista;
    TextView tekst;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        btn=(Button) findViewById(R.id.button1);
        lista=(ListView) findViewById(R.id.listView1);
        btn.setOnClickListener(this);
        tekst=(TextView) findViewById(R.id.textView1);
    }

    @Override
    public void onClick(View v) {
        Intent i=new Intent(this, DetailsActivity.class);
        startActivityForResult(i, RESULT_OK);

    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if(resultCode==RESULT_OK){
        String item=data.getStringExtra("data").toString();
        tekst.setText(item.toString());
    }

    }
    }

第二个:

package com.android.shopping;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;

public class DetailsActivity extends Activity implements OnClickListener{
    Button save;
    EditText details;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_details);
        save=(Button) findViewById(R.id.button1);
        details=(EditText) findViewById(R.id.editText1);
        save.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        Intent in=new Intent();
        in.putExtra("data", details.getText().toString());
        setResult(RESULT_OK, in);
        finish();

    }


}

因此,在带有按钮的第一个活动中,我调用了第二个活动。用户在文本字段中输入内容并单击一个按钮,使他回到第一个活动。他输入的文本应该显示在第一个活动的 textView 中,但事实并非如此。请帮我解决这个问题。

4

2 回答 2

1

在你的MainActivity课堂上,你应该改变你开始的那一DetailsActivity

'startActivityForResult(i, 1);'

请注意,您不应使用RESULT_OK其实际值为 -1。在 sdk 文档中,它说如果您使用负值作为第二个参数,startActivityForResult则简单地视为startActivity. 这就是为什么你不能得到结果的原因DetailsActivity

顺便说一句,第二个参数是 request_code。我认为让 request_code 和 result_code 相同不是一个好主意。

于 2012-08-11T15:53:22.403 回答
0

你确定你的代码通过了 setResult() 和 finish() 吗?

onActivityResult()当你在新的活动中startActivityForResult(<new_activity_context>)被调用。setResult()

另外,你能确保你Manifest没有android:launchMode="singleInstance"吗?

于 2012-08-11T15:31:12.597 回答