如何解决如何编辑单选按钮组的项目?
我有一个片段。我有一个列表 - 名为 Stops。有 3 个站点 - patia、SAILASHREE、niladri Vihar。 3 个停靠点显示在一个无线电组上。我从该单选按钮列表中进行选择。我选择 SAILAHREE,然后单击“编辑”按钮。现在该对话框已启动。在那里,我将“SAILASHREE”编辑为“sailashree vihar”。当我按 yes 时,屏幕上的文本不会从 SAILASHREE 更改为 Saiashree vihar。
之前:无线电组:
帕蒂亚
SAILASHREE
尼拉德里·维哈尔
之后:
帕蒂亚
Saishree Vihar
SAILASHREE
尼拉德里·维哈尔
需要:
帕蒂亚
Saishree Vihar
尼拉德里·维哈尔
代码:
public class PlusOneFragment extends Fragment {
// TODO: Rename parameter arguments,choose names that match
// the fragment initialization parameters,e.g. ARG_ITEM_NUMBER
private static final String ARG_PARAM1 = "param1";
private static final String ARG_PARAM2 = "param2";
// TODO: Rename and change types of parameters
private String mParam1;
private String mParam2;
static Context cntxt ;
static List<String> Stops;
static int count_stops;
Button Edit,Add,Delete,Up,Bottom;
String DialogResult;
static StopActivity obj;
public PlusOneFragment(Context c,int count_stopsArg,List<String> StopsArg,StopActivity Arg) {
// Required empty public constructor
cntxt = c;
count_stops = count_stopsArg;
Stops = StopsArg;
obj = Arg;
}
/**
* Use this factory method to create a new instance of
* this fragment using the provided parameters.
*
* @param param1 Parameter 1.
* @param param2 Parameter 2.
* @return A new instance of fragment PlusOneFragment.
*/
// TODO: Rename and change types and number of parameters
public static PlusOneFragment newInstance(String param1,String param2) {
PlusOneFragment fragment = new PlusOneFragment(cntxt,count_stops,Stops,obj);
Bundle args = new Bundle();
args.putString(ARG_PARAM1,param1);
args.putString(ARG_PARAM2,param2);
fragment.setArguments(args);
return fragment;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getArguments() != null) {
mParam1 = getArguments().getString(ARG_PARAM1);
mParam2 = getArguments().getString(ARG_PARAM2);
}
}
@Override
public View onCreateView(LayoutInflater inflater,ViewGroup container,Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view = inflater.inflate(R.layout.fragment_first,container,false);
//TextView tv= (TextView) view.findViewById(R.id.seat_serial_prefix);
//tv.setText("yourText");
Edit = (Button) view.findViewById(R.id.btn_edit) ;
Add = (Button) view.findViewById(R.id.btn_add) ;
Delete = (Button) view.findViewById(R.id.btn_delete) ;
Up = (Button) view.findViewById(R.id.btn_up) ;
Bottom = (Button) view.findViewById(R.id.btn_bottom) ;
Up.setVisibility(View.GONE);
Bottom.setVisibility(View.GONE);
RadioGroup radiogroup = (RadioGroup) view.findViewById(R.id.radiogroup);
// layout params to use when adding each radio button
LinearLayout.LayoutParams layoutParams = new RadioGroup.LayoutParams(
RadioGroup.LayoutParams.WRAP_CONTENT,RadioGroup.LayoutParams.WRAP_CONTENT);
// add 20 radio buttons to the group
for (int u = 0; u < count_stops; u++) {
RadioButton newRadioButton = new RadioButton(cntxt);
String label = Stops.get(u);
newRadioButton.setText(label);
newRadioButton.setId(u);
radiogroup.addView(newRadioButton,layoutParams);
}
Edit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
RadioGroup radiogroup = (RadioGroup) view.findViewById(R.id.radiogroup);
int a = radiogroup.getCheckedRadioButtonId();
DialogResult = Stops.get(a);
AlertDialog.Builder alertDialog = new AlertDialog.Builder(cntxt);
alertDialog.setTitle("PASSWORD");
alertDialog.setMessage("Enter Password");
final EditText input = new EditText(cntxt);
input.setText(DialogResult);
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT,LinearLayout.LayoutParams.MATCH_PARENT);
input.setLayoutParams(lp);
alertDialog.setView(input);
alertDialog.setPositiveButton("YES",new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,int which) {
DialogResult = input.getText().toString();
Stops.set(a,DialogResult);
radiogroup.removeViewAt(a);
RadioButton newRadioButton = new RadioButton(cntxt);
String label = DialogResult;
newRadioButton.setText(label);
newRadioButton.setId(a);
radiogroup.addView(newRadioButton,a);
}
});
alertDialog.setNegativeButton("NO",int which) {
dialog.cancel();
}
});
alertDialog.show();
}
});
return view;
}
}
解决方法
请尝试以下代码:
我在 1) 和 2) 处对我所做的更改发表了评论。
Edit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// 1) No need to do the findview here
// RadioGroup radiogroup = (RadioGroup) view.findViewById(R.id.radiogroup);
int a = radiogroup.getCheckedRadioButtonId();
DialogResult = Stops.get(a);
AlertDialog.Builder alertDialog = new AlertDialog.Builder(cntxt);
alertDialog.setTitle("PASSWORD");
alertDialog.setMessage("Enter Password");
final EditText input = new EditText(cntxt);
input.setText(DialogResult);
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT,LinearLayout.LayoutParams.MATCH_PARENT);
input.setLayoutParams(lp);
alertDialog.setView(input);
alertDialog.setPositiveButton("YES",new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,int which) {
// 2) just get the view from that radio group and set new
// text to it. No need to remove and add view.
DialogResult = input.getText().toString();
Stops.set(a,DialogResult);
((RadioButton) radiogroup.getChildAt(a)).setText(DialogResult);
}
});
alertDialog.setNegativeButton("NO",int which) {
dialog.cancel();
}
});
alertDialog.show();
}
});
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。