我有以下代码创建警告对话框,我添加了两个编辑文本但是一旦我运行应用程序,EditText中的值将不会被重新执行,我的应用程序崩溃与NullPointerException:
代码是:
AlertDialog.Builder alert = new AlertDialog.Builder(this);
LayoutInflater inflater=this.getLayoutInflater();
final EditText usernameInput=(EditText)findViewById(R.id.dialogusername);
final EditText passwordInput=(EditText)findViewById(R.id.dialogpassword);
alert.setView(inflater.inflate(R.layout.dialog,null));
alert.setTitle("Enter Password");
alert.setMessage("Enter password to remove the app:");
alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
//provide user with caution before uninstalling
//also here should be added a AsyncTask that going to read the password and once its checked the password is correct the app will be removed
value1=usernameInput.getText().toString();
value2=passwordInput.getText().toString();
if(value1.equals(null)&&value2.equals(null))
{Toast.makeText(context, "Enter username and password", Toast.LENGTH_SHORT).show();}
}
});
});
alert.show();
Run Code Online (Sandbox Code Playgroud) 我正在使用GCM向Android设备发送通知.
我用来在GCMIntentService中获取消息的代码如下:
@Override
protected void onMessage(Context ctx, Intent intent) {
// TODO Auto-generated method stub
String j =intent.getStringExtra("message");
generateNotification(ctx, j);
}
Run Code Online (Sandbox Code Playgroud)
我在服务器端使用以推送或发送这些通知的代码如下:
Dim request As WebRequest = WebRequest.Create("https://android.googleapis.com/gcm/send")
request.Method = "POST"
request.ContentType = "application/x-www-form-urlencoded"
request.Headers.Add("Authorization: key=AIzaSyA47-XMaePL1mmI0P1yQ9V4sntMVn9q-1o")
request.Headers.Add("Sender: id=648406549877")
Dim collapsKey = Guid.NewGuid.ToString("n")
Dim postdata As String = "registration_id=" + regid_String_reveived_from_device_after_registering_with_GCM + "&data.message=" + TextBox1.Text + "&collapse_key=" + collapsKey
Dim byteArray As Byte() = Encoding.UTF8.GetBytes(postdata)
request.ContentLength = byteArray.Length
Dim dataStream As Stream = request.GetRequestStream
dataStream.Write(byteArray, 0, byteArray.Length)
dataStream.Close()
Dim resposne As …Run Code Online (Sandbox Code Playgroud) 我想使用GCM一次向多个注册设备发送多个通知,我知道使用纯文本无法完成,因为它只能用于一次发送一个设备的通知.所以我决定使用JSON创建HTTP正文内容,并设法生成以下代表JSON对象的字符串:
{ collapse_key : my_CollapseKey, data.message : myMessage, registration_ids : ["regid1","regid2",...] }
Run Code Online (Sandbox Code Playgroud)
但每当我发送请求时,我都会得到400响应,其中声明了错误请求,当我参考GCM架构概述文档时,它指出
响应400仅适用于JSON请求.表示请求无法解析为JSON,或者包含无效字段(例如,传递一个字符串,其中包含预期的数字)
以下是我在ASP.Net中开发的用于发送请求的Web应用程序的快照:
request.ContentType = "application/json"
request.Headers.Add("Authorization: key=My_Server_Key")
request.Headers.Add("Sender: id=myProject_ID")
Dim collapsKey = Guid.NewGuid.ToString("n")
Dim data As String = "{ collapse_key : " + collapsKey + "," + " data.message : " + HttpUtility.UrlEncode(TextBox1.Text) + "}" + ", registration_ids : " + jsonids1 + "}"
Dim byteArray As Byte() = Encoding.UTF8.GetBytes(data)
request.ContentLength = byteArray.Length
Dim dataStream As Stream = request.GetRequestStream
dataStream.Write(byteArray, 0, byteArray.Length)
dataStream.Close()
Run Code Online (Sandbox Code Playgroud)
知道如何正确解析我的JSON对象并发送多个通知吗?任何帮助将完全赞赏.
问候