- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
编辑:我无法发表评论,尽管这是我自己的问题。所以我要在这里发表我的评论。我多次检查了我的复选框及其 ID,一切似乎都很好。尝试过重命名以及我能想到的任何东西。仍然没有解决。您知道还有什么可能导致该错误吗?
原帖:我已经尝试解决这个问题几个小时了,希望得到一些帮助。我对编码非常陌生 - 参加在线类(class),这是我的期末项目。
我为此 Activity 创建了 7 个 XML 布局。我使用按钮从布局 1 切换到布局 2 等,并且该部分有效。我在 5 个 XML 布局中添加了多个复选框。单击“提交”按钮时,每个选中的复选框上方的文本应该填充到电子邮件应用程序的“撰写电子邮件”中。当我尝试运行它时,它会一直工作,直到我按下最后一个按钮 - 那就是应用程序崩溃的时候。
package com.example.android.theultimatebakingsodaguide;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.text.Layout;
import android.view.LayoutInflater;
import android.view.View;
import android.content.Intent;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ScrollView;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void healthPage(View view) {
// TODO: Find a reference to the ImageView in the layout. Change the image.
ScrollView scrollHealthPage = (ScrollView)findViewById(R.id.scroll_health_page);
setContentView(R.layout.health_page);
}
public void beautyPage(View view) {
// TODO: Find a reference to the ImageView in the layout. Change the image.
ScrollView scrollBeautyPage = (ScrollView)findViewById(R.id.scroll_beauty_page);
setContentView(R.layout.beauty_page);
}
public void personalCarePage(View view) {
// TODO: Find a reference to the ImageView in the layout. Change the image.
ScrollView scrollPersonalCarePage = (ScrollView)findViewById(R.id.scroll_personal_care_page);
setContentView(R.layout.personal_care_page);
}
public void cleaningPage(View view) {
// TODO: Find a reference to the ImageView in the layout. Change the image.
ScrollView scrollCleaningPage = (ScrollView)findViewById(R.id.scroll_cleaning_page);
setContentView(R.layout.cleaning_page);
}
public void deodorizingPage(View view) {
// TODO: Find a reference to the ImageView in the layout. Change the image.
ScrollView scrollDeodorizingPage = (ScrollView)findViewById(R.id.scroll_deodorizing_page);
setContentView(R.layout.deodorizing_page);
}
public void favoritesPage(View view) {
LinearLayout scrollDeodorizingPage = (LinearLayout)findViewById(R.id.favorites_linear);
setContentView(R.layout.favorite_tips);
}
public void emailFavorites(View view) {
CheckBox healthFav01 = (CheckBox) findViewById(R.id.health_fav_01);
boolean pickHealthFav01 = healthFav01.isChecked();
CheckBox healthFav02 = (CheckBox) findViewById(R.id.health_fav_02);
boolean pickHealthFav02 = healthFav02.isChecked();
EditText emailText = (EditText) findViewById(R.id.my_email);
String userEmail = emailText.getText().toString();
String tipSummary = favoriteTipsSummary(pickHealthFav01, pickHealthFav02);
Intent intent = new Intent(Intent.ACTION_SENDTO);
intent.setData(Uri.parse("mailto:")); // only email apps should handle this
intent.putExtra(Intent.EXTRA_SUBJECT, "Your favorite baking soda tips");
intent.putExtra(Intent.EXTRA_TEXT, "The baking soda tips you selected are here!" + tipSummary);
intent.putExtra(Intent.EXTRA_EMAIL, userEmail);
if (intent.resolveActivity(getPackageManager()) != null) {
startActivity(intent);
}
}
private String favoriteTipsSummary(boolean pickHealthFav01, boolean pickHealthFav02) {
String tipSummary = "We hope those are helpful!";
TextView healthTip01 = (TextView) findViewById(R.id.health_tip_01);
String sHealthTip01 = healthTip01.getText().toString();
if (pickHealthFav01) {tipSummary += sHealthTip01;}
TextView healthTip02 = (TextView) findViewById(R.id.health_tip_02);
String sHealthTip02 = healthTip02.getText().toString();
if (pickHealthFav02) {tipSummary += sHealthTip02;}
return tipSummary;
}
}
我已为每个复选框及其相应的 TextView 分配了 ID。我尝试仅为前两个复选框编写代码来测试它是否有效。当我弄清楚后,我会对其余的人做同样的事情(我有很多)。我知道这对于我目前的水平来说太复杂了,但我正在尝试挑战自己并边做边学。请帮忙!提前致谢!
附注以下是我收到的错误消息(请向右滚动)。我在代码中找不到错误。
FATAL EXCEPTION: main
Process: com.example.android.theultimatebakingsodaguide, PID: 23472
java.lang.IllegalStateException: Could not execute method for android:onClick
at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:275)
at android.view.View.performClick(View.java:5204)
at android.view.View$PerformClick.run(View.java:21153)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5417)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
Caused by: java.lang.reflect.InvocationTargetException
at java.lang.reflect.Method.invoke(Native Method)
at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:270)
at android.view.View.performClick(View.java:5204)
at android.view.View$PerformClick.run(View.java:21153)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5417)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean android.widget.CheckBox.isChecked()' on a null object reference
at com.example.android.theultimatebakingsodaguide.MainActivity.emailFavorites(MainActivity.java:76)
at java.lang.reflect.Method.invoke(Native Method)
at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:270)
at android.view.View.performClick(View.java:5204)
at android.view.View$PerformClick.run(View.java:21153)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5417)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
最佳答案
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean android.widget.CheckBox.isChecked()' on a null
object reference at com.example.android.theultimatebakingsodaguide.MainActivity.emailFavorites(MainActivity.java:76)
boolean pickHealthFav01 = healthFav01.isChecked();
是错误发生的地方。检查该复选框是否位于您所引用的 Activity 内。另请检查您是否引用了正确的 ID。
或者尝试类似的东西,
if (healthFav01.isChecked() != null){
//do the assignments
}
但这不是最佳实践。如果您有任何问题,请告诉我
关于java - 如果在 Java/Android Studio 中选中相应的复选框,则将多个 TextView 传输到 "compose email",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35910214/
谁知道现成的脚本或插件提供: -Shift click for check/uncheck all in range -CTRL click to select or unselect all 这可以
如果您点击按钮,它会打开 3 个复选框(一个选择全部,还有两个子输入)。 我想做的是,如果用户点击Centro de dia,输入将保持选中状态,而另一个(在本例中为button)会被选中未经检查。如
我正在学习 Wes Bos 30 天 Javascript 类(class),在一项可选功能上,我需要在底部添加三个按钮:清除全部、选中全部和取消选中全部。这是代码
自从升级到 jquery 1.9 以来,我的脚本停止了检查/取消选中复选框的工作。 我有一个主复选框,用于控制选择/检查表中的复选框列表。升级到新的 jquery 版本后,仅最初单击“检查全部”复选框
我有一个带有复选框列的表格,我添加了以下内容: 这是我的 jQuery 函数: jQuery(document).ready(function() { jQuery('#selec
这是我所拥有的(此处使用 Twitter bootstrap) #html fdsfdsfds
这个问题已经有答案了: Setting "checked" for a checkbox with jQuery (44 个回答) 已关闭 6 年前。 当我单击“问题”时,必须选择/取消选择两个复选框
我有这个表格: First Second Third --- Option1 Option2 有没有办法(使用 JS/jQuery)我可以在 First 时将 first
我试图有一个复选框来选中/取消选中所有其他复选框。 我正在使用此代码: $("#checkall").toggle( function () { $(".kselItems
在复选框列表中,应该可以通过按下按钮来选中/取消选中所有项目。但是下面的代码只能部分工作: All None
当我执行代码时,我得到 4 个复选框,我检查/选择了所有 4 个复选框,当我尝试调试代码时,它确实算作我有 4 个复选框,但所有 4 个复选框都被选中 = false。 我在代码中缺少什么? Li
$("input[type='radio']").each(function() { if ($(this).is(":checked")) { $(this).css('backgrou
我无法使用此 javascript 函数。任何帮助将不胜感激! No function yesno(thecheckbox, thelabel){ var ch
这是我的第一个 js 脚本,请对我温柔点:) 问题是当我点击选中所有按钮时,所有复选框都被选中但它不会将值写入文本区域,如果我单击单个复选框然后值被添加/删除并且没关系,我只是卡住了在那个选中所有/取
我试图在复选框处于选中状态或未选中状态时传递一个值。 但是,它似乎没有通过非检查状态。我正在使用的代码如下: if (document.getElementById('PRODUCT_REVIEW_E
目前我正在使用它来选中/取消选中表单中的所有复选框。 checked=false; function checkedAll (frm1) { var aa= document.getElem
我有 2 个单选按钮,当我单击其中一个按钮时,我会看到下拉菜单,必须在其中选择金额。 到目前为止,我能够检查/取消检查它们,但问题是,当我取消检查单选按钮下拉列表时,不会再次隐藏。 我不太擅长 Jav
HTML: Select All 1. 2. 3. 4. 5. JS: function test(click
我需要为每套图书设置一个选中/取消选中全部复选框。它还应该加上总价和重量。到目前为止,我只能选中每个框,它会很好地添加值,但是一旦我添加一个函数来选中所有框,一切都会停止工作。 //check all
我正在尝试根据来自 mysql 数据库的数据来选中或取消选中复选框。我使用nusoap webservice/webclient读取数据,数据值可以是1或0。 我的代码是: functio
我是一名优秀的程序员,十分优秀!