gpt4 book ai didi

java - 向另一个类显示文本

转载 作者:行者123 更新时间:2023-12-01 11:00:51 25 4
gpt4 key购买 nike

我有一个 showAddForm 按钮,如下面 Claims.java 中的 imej。

enter image description here

当按下 + 按钮时,将显示带有单选按钮警报对话框窗口。当选中单选按钮时,它将转到特定 Activity 。在 Activity 中,它有一个 editText 和一个 save 按钮。我希望当单击 Activity 中的 save 按钮时,editText 上的值显示在 showAddForm button 上。我该如何做才能实现这一目标?

Claims.java

 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
}

假设用户选择项目。

Project1.java

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

}
}

现在,当我单击Project1.java中的save按钮时,它返回到AlertDialogRadio,这不是我想要的,并且文本仍然不存在显示在textView上! 任何人都可以帮忙??????

最佳答案

您可以在 Activity 中使用 startActivityForResult() 并覆盖 onActivityResult()。您可以在第二个 Activity 中使用 setResult() 将您想要的任何内容传递给调用者 Activity 。

示例 herehere

<小时/>

编辑:

如果您希望它从 Fragment 中使用,则必须在保存 Fragment 的 Activity 中编写以下内容:

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

这会将结果传递给您的 fragment ,以便您可以在 fragment 内处理结果。

正如我已经提到的,您必须使用 startActivityForResult() 而不是 startActivity()

关于java - 向另一个类显示文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33341552/

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