我正在开发一个应用程序,在这里我想用一些临时定义的变量将radiogroup选择的值保存到服务器,即我想传递值而不是选定的文本。 例: 如果我选择值“NO”,则它将0作为参数传递给url 如果我选择值“是”,则它将1作为参数传递给url
以下是我的代码请建议我如何按钮点击所有广播组选择的值应该发送到网址?
http://www.test.com/Android/api/savemedicalDetails?problemid=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28&problemstatus=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4&userID=129 在上面的格式我的url应该发送数据到server.In以下代码我的问题是radiogroup选择一些值传递空值。
//activity
public class MyMedicalHistoryActivity2 extends AppCompatActivity {
Toolbar toolbar;
RadioGroup rg1, rg2, rg3, rg4, rg5, rg6, rg7, rg8, rg9, rg10,
rg11, rg12, rg13, rg14, rg15, rg16, rg17, rg18, rg19, rg20,
rg21, rg22, rg23, rg24, rg25, rg26, rg27, rg28;
String [] que;
String que1, que2, que3, que4, que5, que6, que7, que8, que9, que10, que11, que12, que13, que14, que15, que16, que17, que18, que19, que20, que21,
que22, que23, que24, que25, que26, que27, que28;
TextView tv1, tv2, tv3, tv4, tv5, tv6, tv7, tv8, tv9, tv10,
tv11, tv12, tv13, tv14, tv15, tv16, tv17, tv18, tv19, tv20,
tv21, tv22, tv23, tv24, tv25, tv26, tv27, tv28;
TextView user_id;
String [] ans;
String srb1, srb2, srb3, srb4, srb5, srb6, srb7, srb8, srb9, srb10,
srb11, srb12, srb13, srb14, srb15, srb16, srb17, srb18, srb19, srb20, srb21, srb22, srb23, srb24, srb25, srb26, srb27, srb28;
Button btnSave;
private static String url = null;
private boolean isLoggedIn = false;
SessionManagement session;
String sessionid;
String email,userID;
JSONArray user = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my_medical_history1);
toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
TextView toolbarTitle = (TextView) toolbar.findViewById(R.id.toolbar_title);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayShowTitleEnabled(false);
toolbarTitle.setText("My Medical History");
toolbar.setTitleMarginBottom(50);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setHomeButtonEnabled(true);
btnSave= (Button)findViewById(R.id.btn_save);
user_id = (TextView)findViewById(R.id.user_id);
SharedPreferences sharedPreferences = getSharedPreferences(SessionManagement.PREF_NAME, Context.MODE_PRIVATE);
isLoggedIn = sharedPreferences.getBoolean(SessionManagement.IS_LOGIN, false);
String userID1 = sharedPreferences.getString(SessionManagement.KEY_SESSIONID, "Not Available");
user_id.setText(userID1);
rg1=(RadioGroup)findViewById(R.id.radioGroup1);
rg2=(RadioGroup)findViewById(R.id.radioGroup2);
rg3=(RadioGroup)findViewById(R.id.radioGroup3);
rg4=(RadioGroup)findViewById(R.id.radioGroup4);
rg5=(RadioGroup)findViewById(R.id.radioGroup5);
rg6=(RadioGroup)findViewById(R.id.radioGroup6);
rg7=(RadioGroup)findViewById(R.id.radioGroup7);
rg8=(RadioGroup)findViewById(R.id.radioGroup8);
rg9=(RadioGroup)findViewById(R.id.radioGroup9);
rg10=(RadioGroup)findViewById(R.id.radioGroup10);
rg11=(RadioGroup)findViewById(R.id.radioGroup11);
rg12=(RadioGroup)findViewById(R.id.radioGroup12);
rg13=(RadioGroup)findViewById(R.id.radioGroup13);
rg14=(RadioGroup)findViewById(R.id.radioGroup14);
rg15=(RadioGroup)findViewById(R.id.radioGroup15);
rg16=(RadioGroup)findViewById(R.id.radioGroup16);
rg17=(RadioGroup)findViewById(R.id.radioGroup17);
rg18=(RadioGroup)findViewById(R.id.radioGroup18);
rg19=(RadioGroup)findViewById(R.id.radioGroup19);
rg20=(RadioGroup)findViewById(R.id.radioGroup20);
rg21=(RadioGroup)findViewById(R.id.radioGroup21);
rg22=(RadioGroup)findViewById(R.id.radioGroup22);
rg23=(RadioGroup)findViewById(R.id.radioGroup23);
rg24=(RadioGroup)findViewById(R.id.radioGroup24);
rg25=(RadioGroup)findViewById(R.id.radioGroup25);
rg26=(RadioGroup)findViewById(R.id.radioGroup26);
rg27=(RadioGroup)findViewById(R.id.radioGroup27);
rg28=(RadioGroup)findViewById(R.id.radioGroup28);
tv1= (TextView)findViewById(R.id.id1);
tv2= (TextView)findViewById(R.id.id2);
tv3= (TextView)findViewById(R.id.id3);
tv4= (TextView)findViewById(R.id.id4);
tv5= (TextView)findViewById(R.id.id5);
tv6= (TextView)findViewById(R.id.id6);
tv7= (TextView)findViewById(R.id.id7);
tv8= (TextView)findViewById(R.id.id8);
tv9= (TextView)findViewById(R.id.id9);
tv10= (TextView)findViewById(R.id.id10);
tv11= (TextView)findViewById(R.id.id11);
tv12= (TextView)findViewById(R.id.id12);
tv13= (TextView)findViewById(R.id.id13);
tv14= (TextView)findViewById(R.id.id14);
tv15= (TextView)findViewById(R.id.id15);
tv16= (TextView)findViewById(R.id.id16);
tv17= (TextView)findViewById(R.id.id17);
tv18= (TextView)findViewById(R.id.id18);
tv19= (TextView)findViewById(R.id.id19);
tv20= (TextView)findViewById(R.id.id20);
tv21= (TextView)findViewById(R.id.id21);
tv22= (TextView)findViewById(R.id.id22);
tv23= (TextView)findViewById(R.id.id23);
tv24= (TextView)findViewById(R.id.id24);
tv25= (TextView)findViewById(R.id.id25);
tv26= (TextView)findViewById(R.id.id26);
tv27= (TextView)findViewById(R.id.id27);
tv28= (TextView)findViewById(R.id.id28);
que1= tv1.getText().toString();
que2= tv2.getText().toString();
que3= tv3.getText().toString();
que4= tv4.getText().toString();
que5= tv5.getText().toString();
que6= tv6.getText().toString();
que7= tv7.getText().toString();
que8= tv8.getText().toString();
que9= tv9.getText().toString();
que10= tv10.getText().toString();
que11= tv11.getText().toString();
que12= tv12.getText().toString();
que13= tv13.getText().toString();
que14= tv14.getText().toString();
que15= tv15.getText().toString();
que16= tv16.getText().toString();
que17= tv17.getText().toString();
que18= tv18.getText().toString();
que19= tv19.getText().toString();
que20= tv20.getText().toString();
que21= tv21.getText().toString();
que22= tv22.getText().toString();
que23= tv23.getText().toString();
que24= tv24.getText().toString();
que25= tv25.getText().toString();
que26= tv26.getText().toString();
que27= tv27.getText().toString();
que28= tv28.getText().toString();
que= new String[] { que1, que2, que3, que4, que5, que6, que7, que8, que9, que10, que11,
que12, que13, que14, que15, que16, que17, que18, que19, que20, que21,
que22, que23, que24, que25, que26, que27, que28 };
btnSave.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int selectedIdGender1 = rg1.getCheckedRadioButtonId();
RadioButton rb1 = (RadioButton) findViewById(selectedIdGender1);
String msrb1 = rb1.getText().toString();
String srb1= null;
if (msrb1.equals("No")) {
srb1 = String.valueOf(1);
} else if (msrb1.equals("Sometimes")) {
srb1 = String.valueOf(2);
} else if (msrb1.equals("Often")) {
srb1 = String.valueOf(3);
} else if (msrb1.equals("Always")) {
srb1 = String.valueOf(4);
}
int selectedIdGender2 = rg2.getCheckedRadioButtonId();
RadioButton rb2 = (RadioButton) findViewById(selectedIdGender2);
String msrb2 = rb2.getText().toString();
String srb2=null;
if(msrb2.equals("No")){
srb2= String.valueOf(1);
}
else if(msrb2.equals("Within 1 Years")){
srb2= String.valueOf(2);
}
else if(msrb2.equals("Often")){
srb2= String.valueOf(3);
}
else if(msrb2.equals("Always")){
srb2= String.valueOf(4);
}
int selectedIdGender3 = rg3.getCheckedRadioButtonId();
RadioButton rb3 = (RadioButton) findViewById(selectedIdGender3);
String msrb3 = rb3.getText().toString();
String srb3=null;
if(msrb3.equals("No")){
srb3= String.valueOf(1);
}else if(msrb3.equals("Within 1 Years")){
srb3= String.valueOf(2);
}
else if(msrb3.equals("Within 2 Years")){
srb3= String.valueOf(3);
}
else if(msrb3.equals("More than 1 Years")){
srb2= String.valueOf(4);
}
int selectedIdGender4 = rg4.getCheckedRadioButtonId();
RadioButton rb4 = (RadioButton) findViewById(selectedIdGender4);
String msrb4 = rb4.getText().toString();
String srb4=null;
if(msrb4.equals("No")){
srb4= String.valueOf(1);
}else if(msrb4.equals("Within 1 Years")){
srb4= String.valueOf(2);
}
else if(msrb4.equals("Within 2 Years")){
srb4= String.valueOf(3);
}
else if(msrb4.equals("More than 1 Years")){
srb4= String.valueOf(4);
}
int selectedIdGender5 = rg5.getCheckedRadioButtonId();
RadioButton rb5 = (RadioButton) findViewById(selectedIdGender5);
String msrb5 = rb5.getText().toString();
String srb5=null;
if(msrb5.equals("No")){
srb5= String.valueOf(1);
}else if(msrb5.equals("Mild")){
srb5= String.valueOf(2);
}
else if(msrb5.equals("Moderate")){
srb5= String.valueOf(3);
}
else if(msrb5.equals("severe")){
srb5= String.valueOf(4);
}
int selectedIdGender6 = rg6.getCheckedRadioButtonId();
RadioButton rb6 = (RadioButton) findViewById(selectedIdGender6);
String msrb6 = rb6.getText().toString();
String srb6=null;
if(msrb6.equals("No")){
srb6= String.valueOf(1);
}else if(msrb6.equals("Mild")){
srb6= String.valueOf(2);
}
else if(msrb6.equals("Moderate")){
srb6= String.valueOf(3);
}
else if(msrb6.equals("severe")){
srb6= String.valueOf(4);
}
int selectedIdGender7 = rg7.getCheckedRadioButtonId();
RadioButton rb7 = (RadioButton) findViewById(selectedIdGender7);
String msrb7 = rb7.getText().toString();
String srb7=null;
if(msrb7.equals("No")){
srb7= String.valueOf(1);
}else if(msrb7.equals("Mild")){
srb7= String.valueOf(2);
}
else if(msrb7.equals("Moderate")){
srb7= String.valueOf(3);
}
else if(msrb7.equals("severe")){
srb7= String.valueOf(4);
}
int selectedIdGender8 = rg8.getCheckedRadioButtonId();
RadioButton rb8 = (RadioButton) findViewById(selectedIdGender8);
String msrb8 = rb8.getText().toString();
String srb8=null;
if(msrb8.equals("No")){
srb8= String.valueOf(1);
}else if(msrb8.equals("Mild")){
srb8= String.valueOf(2);
}
else if(msrb8.equals("Moderate")){
srb8= String.valueOf(3);
}
else if(msrb8.equals("severe")){
srb8= String.valueOf(4);
}
int selectedIdGender9 = rg9.getCheckedRadioButtonId();
RadioButton rb9 = (RadioButton) findViewById(selectedIdGender9);
String msrb9 = rb9.getText().toString();
String srb9=null;
if(msrb9.equals("No")){
srb9= String.valueOf(1);
}else if(msrb9.equals("Mild")){
srb9= String.valueOf(2);
}
else if(msrb9.equals("Moderate")){
srb9= String.valueOf(3);
}
else if(msrb9.equals("severe")){
srb9= String.valueOf(4);
}
int selectedIdGender10 = rg10.getCheckedRadioButtonId();
RadioButton rb10 = (RadioButton) findViewById(selectedIdGender10);
String msrb10 = rb10.getText().toString();
String srb10=null;
if(msrb10.equals("No")){
srb10= String.valueOf(1);
}else if(msrb10.equals("Mild")){
srb10= String.valueOf(2);
}
else if(msrb10.equals("Moderate")){
srb10= String.valueOf(3);
}
else if(msrb10.equals("severe")){
srb10= String.valueOf(4);
}
//upto 28 selected
int selectedIdGender28 = rg28.getCheckedRadioButtonId();
RadioButton rb28 = (RadioButton) findViewById(selectedIdGender28);
String msrb28 = rb28.getText().toString();
String srb28=null;
if(msrb28.equals("No")){
srb28= String.valueOf(1);
}else if(msrb28.equals("Mild")){
srb28= String.valueOf(2);
}
else if(msrb28.equals("Moderate")){
srb28= String.valueOf(3);
}
else if(msrb28.equals("severe")){
srb28= String.valueOf(4);
}
ans = new String[]{ srb1, srb2, srb3, srb4, srb5, srb6, srb7, srb8, srb9, srb10,
srb11, srb12, srb13, srb14, srb15, srb16, srb17, srb18, srb19, srb20,
srb21, srb22, srb23, srb24, srb25, srb26, srb27, srb28 };
// String userID = Integer.parseInt(user_id.getText().toString());
int userID = Integer.parseInt(user_id.getText().toString());
// userID = String.valueOf(19161);
String que1 = convertArrayToString(que);
String ans1 = convertArrayToString(ans);
// String ans1 = URLEncoder.encode(convertArrayToString(ans), "utf-8");
if(isLoggedIn) {
connectWithHttpGet(userID, que1, ans1);
Intent intent = new Intent(MyMedicalHistoryActivity2.this, AsanasActivity.class);
startActivity(intent);
}
}
});
}
//insert string array to db
public static String strSeparator = ",";
public static String convertArrayToString(String[] array){
String str = "";
for (int i = 0;i<array.length; i++) {
str = str+array[i];
// Do not append comma at the end of last element
if(i<array.length-1){
str = str+strSeparator;
}
}
return str;
}
private void connectWithHttpGet(int userID, String que, String ans) {
class HttpGetAsyncTask extends AsyncTask<String, Void, String> {
@Override
protected String doInBackground(String... params) {
int paramUid = Integer.parseInt(params[0]);
String paramQue = params[1];
String paramAns = params[2];
System.out.println("Que ID:" + paramQue + " Ans is :" + paramAns );
// Create an intermediate to connect with the Internet
HttpClient httpClient = new DefaultHttpClient();
HttpGet httpGet = new HttpGet("http://www.test.com/Android/api/savemedicalDetails?userID="+paramUid+
"&problemid="+paramQue+ "&problemstatus="+paramAns);
try {
HttpResponse httpResponse = httpClient.execute(httpGet);
System.out.println("httpResponse// getEntity() ; obtains the message entity of this response");
InputStream inputStream = httpResponse.getEntity().getContent();
InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
StringBuilder stringBuilder = new StringBuilder();
String bufferedStrChunk = null;
while((bufferedStrChunk = bufferedReader.readLine()) != null){
stringBuilder.append(bufferedStrChunk);
}
System.out.println("Returninge of doInBackground :" + stringBuilder.toString());
return stringBuilder.toString();
} catch (ClientProtocolException cpe) {
System.out.println("Exceptionrates caz of httpResponse :" + cpe);
cpe.printStackTrace();
} catch (IOException ioe) {
System.out.println("Secondption generates caz of httpResponse :" + ioe);
ioe.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(String result) {
super.onPostExecute(result);
System.out.println("httpResponse :" + result);
try {
JSONObject jsonObject = new JSONObject(result);
JSONArray login = jsonObject.getJSONArray("savemedicaldetails");
JSONObject jsonObject1 = login.getJSONObject(0);
String responsetypes = jsonObject1.optString("responsetype");
// String responsetypes = jsonObject1.getString("responsetype");
String message = jsonObject1.getString("message");
if (TextUtils.equals(responsetypes, "success")) {
Toast.makeText(getApplicationContext(), message , Toast.LENGTH_LONG).show();
} else if (TextUtils.equals(responsetypes, "failure")) {
Toast.makeText(getApplicationContext(), message , Toast.LENGTH_LONG).show();
}
} catch (JSONException e) {
e.printStackTrace();
}
}
}
// Initialize the AsyncTask class
HttpGetAsyncTask httpGetAsyncTask = new HttpGetAsyncTask();
httpGetAsyncTask.execute(String.valueOf(userID), que, ans);
}
}
答案 0 :(得分:1)
我会做以下事情:
对于每个单选按钮,我都会添加一个标签。因此对于单词“No”的单选按钮,我将标签设置为1.对于“有时”,我将标签设置为2.依此类推。
然后,如果每个RadioGroup都在同一个父节点下,我会遍历父节点的子节点并获取单选按钮的标签。像这样:
final String[] values = new String[rgParent.getChildCount()];
for (int i = 0; i < rgParent.getChildCount(); i++) {
final View v = rgParent.getChildAt(i);
if (v instanceof RadioGroup) {
final int radioButtonId =
((RadioGroup) v).getCheckedRadioButtonId();
if (radioButtonId != -1) {
final View vRadioButton = findViewById(radioButtonId);
values[i] = vRadioButton.getTag();
} else {
values[i] = "0";
}
}
}
您可以为视图设置标记。
在xml中:
<RadioButton
android:tag="yourtag"
/>
或代码:
RadioButton rb = ...;
rb.setTag(yourtag); // this method accepts an object, so you can pass any data type (integer, String, etc...)