首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >startActivityForResult()不工作

startActivityForResult()不工作
EN

Stack Overflow用户
提问于 2015-10-26 15:17:04
回答 1查看 309关注 0票数 0

我在Claims.java里有一个按钮。当button被按下时,它将显示Alert Dialog Windowradio buttons.If -- radio button被选中,它将转到特定的活动。在活动中,它有一个editText和一个save按钮。当单击活动中的editText按钮时,我希望在button(Claims.java)上显示save的值。

Claims.java >> AlertDialog窗口在Claims.java >> AlertDialogRadio.java中

我使用startActivityForResult()接收来自AlertRadioDialog.java的结果。但现在的问题是,它将显示AlertDialogRadio,这不是我想要的,文本也没有显示在textView上。我怎样才能做到这一点?

Claims.java

代码语言:javascript
复制
 public class Claims extends Fragment {
    private TextView c;

    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        View claims = inflater.inflate(R.layout.claims, container, false);


        View.OnClickListener listener = new View.OnClickListener() {
            public void onClick(View v) {
                AlertDialogRadio();

            }
        };
        Button button1 = (Button) claims.findViewById(R.id.button10);
        Button button = (Button) claims.findViewById(R.id.button8);
        button1.setOnClickListener(listener);
         c=(TextView)claims.findViewById(R.id.textView49);

        button.setOnClickListener(new View.OnClickListener() {
            public void onClick(View arg0) {
                Intent intent = new Intent(getActivity().getApplicationContext(), CameraMain.class);
                startActivity(intent);
            }
        });
        return claims;
    }

    public void AlertDialogRadio() {
        final CharSequence[] ClaimsModel = {"Project", "Petrol", "Car Maintenance"
                , "Medical", "Other"};

        AlertDialog.Builder alt_bld = new AlertDialog.Builder(getActivity());
        alt_bld.setTitle("Select a Claims");
        alt_bld.setSingleChoiceItems(ClaimsModel, -1, new DialogInterface
                .OnClickListener() {
            public void onClick(DialogInterface dialog, int item) {
                if (item == 0) {
                    Intent intent = new Intent(getActivity().getApplicationContext(), Project1.class);
                    startActivity(intent);
                } else if (item == 1) {
                    Intent intent = new Intent(getActivity().getApplicationContext(), Petrol.class);
                    startActivity(intent);
                } else if (item == 2) {
                    Intent intent = new Intent(getActivity().getApplicationContext(), CarMainten.class);
                    startActivity(intent);
                } else if (item == 3) {
                    Intent intent = new Intent(getActivity().getApplicationContext(), Medical.class);
                    startActivity(intent);
                } else if (item == 4) {
                    Intent intent = new Intent(getActivity().getApplicationContext(), Other.class);
                    startActivity(intent);
                }

            }
        });
        AlertDialog alert = alt_bld.create();
        alert.show();


    }
@Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {

        if (requestCode == 1) {
            if(resultCode == Activity.RESULT_OK){
                String result=data.getStringExtra("text");
                c.setText(result);


            }
            if (resultCode == Activity.RESULT_CANCELED) {
                //Write your code if there's no result
            }
        }
    }//onActivityResult
}

假设用户选择Project。

Project1.java

代码语言:javascript
复制
  public class Project1 extends AppCompatActivity {
    private static String text;
    private static EditText txt;

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.project);
       txt= (EditText)findViewById(R.id.editText36);
        Button b=(Button)findViewById(R.id.button17);

        b.setOnClickListener(new View.OnClickListener() {
            public void onClick(View arg0) {
                Intent returnIntent = new Intent();
                text = txt.getText().toString();
                returnIntent.putExtra("text", text);
                setResult(Activity.RESULT_OK, returnIntent);
                finish();
            }
        });

    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-26 15:27:25

首先,您根本没有使用startActivityForResult

以下是您应该如何进行:

Claims.java

代码语言:javascript
复制
public static final int PROJECT_REQUEST_CODE = 1;
public static final int CAMERA_REQUEST_CODE = 2;
public static .....
if (item == 0) {
     Intent intent = new Intent(getActivity().getApplicationContext(), Project1.class);
     startActivityForResult(intent, PROJECT_REQUEST_CODE);
}
else if .....

OnActivityResult中:

代码语言:javascript
复制
if (requestCode == PROJECT_REQUEST_CODE) {
...
}
else if(requestCode == CAMERA_REQUEST_CODE) {
...
}
else if ...
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33349277

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档