java按钮的应用程序,java - 如何解决按钮单击时应用程序崩溃的问题? - SO中文参考 - www.soinside.com...

[每当我按下第二个按钮(fireb)时,我的应用就会崩溃。但是,第一个按钮(单击)可以正常工作。public class MainActivity extends AppCompatActivity {

Button click;

public static TextView data;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

click = (Button) findViewById(R.id.button);

data = (TextView) findViewById(R.id.fetcheddata);

click.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View view) {

fetchData process = new fetchData();

process.execute();

}

});

Button fireb =(Button) findViewById(R.id.fire);

fireb.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View view) {

Member go = new Member();

go.execute();

DatabaseReference reff;

reff= FirebaseDatabase.getInstance().getReference().child("Member");

reff.push().setValue(go);

Toast.makeText(MainActivity.this,"Data Inserted Sucessfully",Toast.LENGTH_LONG).show();

}

});

实际上,我想用对象“ go”执行类“ Member”,然后将“ go”中包含的数据发布到firebase数据库。

这里是崩溃日志。...--------- beginning of crash

05-11 14:35:51.301 3457-3457/? E/AndroidRuntime: FATAL EXCEPTION: main

Process: com.example.myapplication, PID: 3457

com.google.firebase.database.DatabaseException: Invalid key: . Keys must not contain '/', '.', '#', '$', '[', or ']'

at com.google.firebase.database.core.utilities.Validation.validateWritableKey(com.google.firebase:firebase-database@@19.3.0:120)

at com.google.firebase.database.core.utilities.Validation.validateWritableObject(com.google.firebase:firebase-database@@19.3.0:103)

at com.google.firebase.database.DatabaseReference.setValueInternal(com.google.firebase:firebase-database@@19.3.0:283)

at com.google.firebase.database.DatabaseReference.setValue(com.google.firebase:firebase-database@@19.3.0:159)

at com.example.myapplication.MainActivity$2.onClick(MainActivity.java:51)

at android.view.View.performClick(View.java:4780)

at android.view.View$PerformClick.run(View.java:19866)

at android.os.Handler.handleCallback(Handler.java:739)

at android.os.Handler.dispatchMessage(Handler.java:95)

at android.os.Looper.loop(Looper.java:135)

at android.app.ActivityThread.main(ActivityThread.java:5254)

at java.lang.reflect.Method.invoke(Native Method)

at java.lang.reflect.Method.invoke(Method.java:372)

at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)

at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)

05-11 14:36:01.830 3457-3472/? I/art: Background partial concurrent mark sweep GC freed 17161(834KB) AllocSpace objects, 9(611KB) LOS objects, 39% free, 3MB/5MB, paused 545us total 172.404ms

05-11 14:36:05.223 3457-3457/? I/Process: Sending signal. PID: 3457 SIG: 9

这是成员类。public class Member extends AsyncTask {

String mdata = "";

String ad_id = "";

String price = "";

String username = "";

@Override

protected Void doInBackground(Void... voids) {

try {

.

.

.

JSONObject JO1 = new JSONObject(mdata);

JSONObject JO2 = JO1.getJSONObject("data");

JSONArray JA = JO2.getJSONArray("ad_list");

JSONObject JO3 = JA.getJSONObject(0);

JSONObject JO4 = JO3.getJSONObject("data");

JSONObject JO5 = JO4.getJSONObject("profile");

username = (JO5.getString("username")).trim();

ad_id = JO4.getString("ad_id").trim();

price = JO4.getString("temp_price").trim();

} catch (MalformedURLException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

} catch (JSONException e) {

e.printStackTrace();

}

return null;

}

}

也许很简单,但是我正在开发我的第一个应用程序:)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值