- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我对 Android 开发还比较陌生,有一些想法我无法理解。
我想要实现的是,当单击按钮时, View 会膨胀为 R.id.resultsBox
的 LinearLayout
。我认为我必须做的事情背后的想法是:
public class FindClassFragment extends Fragment {
private Button search_button;
private EditText course_abbrev_field;
private EditText course_num_field;
private Spinner semester_spinner;
private String course_abbrev;
private String course_num;
private String semester;
private ArrayList<String[]> sectionsList;
private LinearLayout resultsBox;
private WebScraper scraper;
public FindClassFragment() {
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_findclass, container, false);
resultsBox = (LinearLayout) rootView.findViewById(R.id.resultsView);
RelativeLayout f = (RelativeLayout) inflater.inflate(R.layout.fragment_section, null);
search_button = (Button) rootView.findViewById(R.id.search_button);
course_abbrev_field = (EditText) rootView.findViewById(R.id.course_abbrev);
course_num_field = (EditText) rootView.findViewById(R.id.course_num);
assert search_button != null;
search_button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
System.out.println("CLICK");
if(true) {
resultsBox.removeAllViews();
LinearLayout l = (LinearLayout) view.inflate(getActivity(), R.layout.error, (ViewGroup) view);
resultsBox.addView(l);
} else {
resultsBox.removeAllViews();
}
}
});
return rootView;
}
}
我想出了如何让点击事件正常工作。当我单击时,“CLICK”
会打印到日志中。我以为我正确地放大了 View ,但显然不是因为应用程序崩溃了。
我假设我的错误与从 FindClassFragment
类到 new View.OnClickListener()
子类的继承有关,但我不确定到底是什么。
我尝试在类范围内定义所有内容,但这不起作用......我迷路了。
非常感谢正确方向的有用提示!
编辑:不担心变量空指针异常,我担心让 View 正确膨胀。
我收到的错误日志是:
java.lang.ClassCastException: android.widget.Button cannot be cast to android.view.ViewGroup
at github.m_porter.fragments.FindClassFragment$1.onClick(FindClassFragment.java:72)
at android.view.View.performClick(View.java:4354)
at android.view.View$PerformClick.run(View.java:17967)
at android.os.Handler.handleCallback(Handler.java:725)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5329)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1102)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:869)
at dalvik.system.NativeStart.main(Native Method)
对于那些不喜欢数的人,第67行是LinearLayout l = (LinearLayout) view.inflate(getActivity(), R.layout.error, (ViewGroup) view);
最佳答案
FindClassFragment 类的 onClick() 第 67 行给出 NullPointer 异常。
放置断点并检查哪个对象/变量为空,首先修复该问题并尝试一下。
编辑:找不到代码中初始化的termed_spinner。使用前先初始化。
编辑:
像这样使用:
LayoutInflater layoutInflater = (LayoutInflater) getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
LinearLayout layout = layoutInflater.inflate(R.layout.error,null);
resultsBox.addView(layout);
关于java - 单击事件后从资源布局中 inflatedView ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21179092/
我对 Android 开发还比较陌生,有一些想法我无法理解。 我想要实现的是,当单击按钮时, View 会膨胀为 R.id.resultsBox 的 LinearLayout。我认为我必须做的事情背后
我试图膨胀一个 View 作为我的 glSurfaceView 的加载屏幕,同时它在运行时交换纹理(我知道如何在我的 onCreate 期间做到这一点美好的)。它只是一个 RelativeLayout
我必须创建一个包含框的水平 ScrollView 。每个盒子最多只能包含三个项目。所以我的逻辑是: 在水平 ScrollView 中创建框列表 创建 box.xml
当我按下一个按钮时,我希望出现一个 inflatedView ,当我按下同一个按钮时,这个 View 消失... ViewGroup parent = (ViewGroup) findViewById
我正在尝试调整 inflatedView 的大小,但不起作用 我将此 View 添加到AlertDialog LayoutInflater inflater = getActivity().getL
试图弄清楚如何在 inflatedView 中显示应用程序栏和抽屉导航。我使用的是启动应用程序时预安装的基本方法。所以这一切都是从我的主要 Activity 中使用 contentmain.xml 运
我正在创建一个适配器,该适配器应使用汽车图像和型号名称填充 GridView。我已经创建了一个网格项作为自己的 XML 文件,其中包含所需的小部件(ImageView 和 TextView)。但是,我
我正在向当前 View 动态添加布局。即使但问题是即使我在光标中有两个以上的值也只有一个 View 被夸大了。 这意味着旧数据被覆盖。但我想在 phoneCrsr 中为每条记录添加新 View 。 我
如何扩充 View 并将其添加到 LinearLayout 的 subview 列表中? 最佳答案 调用inflater构造函数时,设置attachToRoot为false;然后在初始化 View 后
我想知道我们是否可以为膨胀 View 内的元素分配任何唯一编号。 我的 View 看起来像这样,这张图片可能会让您了解我正在尝试做什么: 我想做的是根据这样选择的微调项更改编辑文本框的值: //spi
这是我的item_simple_itemview.xml 我使用此 xml 文件的多个实例创建了一个 RecyclerView,因为它们是列表中的“项目”。 我的onChang
我创建了一个自定义类来快速创建 View 对象(基本上它只是一个显示的问题)。例子: Title : Weather Message : How is the weather today? 所以这是我
我有一个 Activity ,我可以使用 LayoutInflater 在其上以编程方式创建一些按钮,如下所示: LayoutInflater inflater = (LayoutInflater)
嘿伙计们, 我目前遇到一个开关盒的问题,它应该包含我的 inflatedView(我有 3 种不同的布局,取决于显示的 Fragment,它们将在我的 MenuBar 中膨胀)。 目前我的 switc
这是我在 StackOverflow 上的第一篇文章。到目前为止,该站点一直是救星。 我对此很陌生,到目前为止,我已经能够解决我的问题,但我被困在这个问题上了。 我在 fragment 中工作(我是新
刚刚接触到 LayoutInflater 及其功能,并提出了一个愚蠢的问题。我正在研究一种游戏布局,其中玩家做出未知数量的猜测,我想将每个新猜测膨胀到 guessContainer 中,高于所有之前的
我想实现一个自定义的 LayoutInflater 来缩放维度值,例如,使用: int scale = 2; MyInflater.inflate(R.id.testview, null, paren
我正在开发一个 Android 应用程序。在我的应用程序中,我需要动态地扩充 View 列表。我添加了它们并开始工作。问题在于设置布局的宽度和高度。现在我将用一个简单的项目来演示我的问题。实际上,我的
我正在开发一款 Android 应用。我有一个自定义 View 和布局,如下所示: 这是 Java 类: public class SimpleCardView extends
我收到 lint 警告,在使用 null 作为 parent 膨胀 View 时避免将 null 作为 View 根 传递,例如: LayoutInflater.from(context).infla
我是一名优秀的程序员,十分优秀!