在我的应用程序中,我在我的应用程序中使用 http 服务,我必须使用一个编辑文本和两个按钮(预览按钮、发送按钮)。当我单击预览按钮时,http 请求将与编辑文本的内容一起建立。我想在对话框中显示响应和编辑文本内容。
此网址: “ http://invitations.in/events/register/credit.php?template= ” + sms_content
这是回应:
{“学分”:2}
这是我的代码:
editText = (EditText)findViewById(R.id.sms_content);
preview_btn = (Button) findViewById(R.id.preview_btn);
send_btn = (Button) findViewById(R.id.send_btn);
send_btn.setVisibility(View.GONE);
preview_btn.setVisibility(View.VISIBLE);
preview_btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
sms_content = editText.getText().toString();
// get prompts.xml view
LayoutInflater li = LayoutInflater.from(context);
View promptsView = li.inflate(R.layout.prompts, null);
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(
context);
// set prompts.xml to alertdialog builder
alertDialogBuilder.setView(promptsView);
TextView preview = (TextView) promptsView
.findViewById(R.id.preview);
TextView smscount = (TextView) promptsView.findViewById(R.id.count_credits);
TextView numofcont = (TextView) promptsView.findViewById(R.id.no_ofcont);
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
try {
try {
sms_content = URLEncoder.encode(sms_content, "UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
try {
HttpClient httpClient = new DefaultHttpClient();
HttpGet httpPost = new HttpGet("http://v.leonas.in/events/register/credit.php?template="+sms_content);
HttpResponse response = httpClient.execute(httpPost);
HttpEntity entity = response.getEntity();
String responseString = EntityUtils.toString(entity);
JSONObject jsonObject = new JSONObject(responseString);
creditspersms = jsonObject.getInt("credits");
System.out.println(creditspersms);
} catch (JSONException e) {
e.printStackTrace();
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}catch (Exception e) {
e.printStackTrace();
}
}
});
thread.start();
preview.setText(sms_content);
smscount.setText(String.valueOf(creditspersms * contnum));
numofcont.setText(Integer.toString(contnum));
// set dialog message
alertDialogBuilder
.setCancelable(false)
.setPositiveButton("OK",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,int id) {
// get user input and set it to result
// edit text
editText.setText(editText.getText());
send_btn.setVisibility(View.VISIBLE);
preview_btn.setVisibility(View.GONE);
}
})
.setNegativeButton("Cancel",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,int id) {
dialog.cancel();
}
});
// create alert dialog
AlertDialog alertDialog = alertDialogBuilder.create();
// show it
alertDialog.show();
}
});
在这里,当我单击预览按钮时,它正在点击 URL 并从中获得响应。但是在警报对话框中,响应显示为 0。如果我取消对话框并再次单击预览按钮,它会给出我想要的确切输出。但我想在我第一次点击时出现这个,请帮我解决这个问题。
你可以尝试像下面的代码:
final Thread thread = new Thread(new Runnable() {
@Override
public void run() {
try {
try {
sms_content = URLEncoder.encode(sms_content, "UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
try {
HttpClient httpClient = new DefaultHttpClient();
HttpGet httpPost = new HttpGet("http://v.leonas.in/events/register/credit.php?template=" + sms_content);
HttpResponse response = httpClient.execute(httpPost);
HttpEntity entity = response.getEntity();
String responseString = EntityUtils.toString(entity);
JSONObject jsonObject = new JSONObject(responseString);
creditspersms = jsonObject.getInt("credits");
System.out.println(creditspersms);
} catch (JSONException e) {
e.printStackTrace();
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
} catch (Exception e) {
e.printStackTrace();
}
MainActivity.this.runOnUiThread(new Runnable() {
@Override
public void run() {
preview.setText(sms_content);
smscount.setText(String.valueOf(creditspersms * contnum));
numofcont.setText(Integer.toString(contnum));
// set dialog message
alertDialogBuilder
.setCancelable(false)
.setPositiveButton("OK",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
// get user input and set it to result
// edit text
editText.setText(editText.getText());
send_btn.setVisibility(View.VISIBLE);
preview_btn.setVisibility(View.GONE);
}
})
.setNegativeButton("Cancel",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
}
});
// create alert dialog
AlertDialog alertDialog = alertDialogBuilder.create();
// show it
alertDialog.show();
}
});
}
});
thread.start();
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句