- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想在双向 GridView 中使用 TextView https://github.com/jess-anders/two-way-gridview .我可以成功地将 ArrayAdapter 与双向 GridView 一起使用。它按我的意愿正常工作。但是当我改编来自 How to add a TextView to a GridView in Android 的示例时.
访问 TextView 时出现 NullPointerException。
这是我的代码。
MainActivity.java :
public class MainActivity extends AppCompatActivity {
static final String[] numbers = new String[] {
"A", "B", "C", "D", "E",
"F", "G", "H", "I", "J",
"K", "L", "M", "N", "O",
"P", "Q", "R", "S", "T",
"U", "V", "W", "X", "Y", "Z"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TwoWayGridView gridview = (TwoWayGridView) findViewById(R.id.gridview);
gridview = (TwoWayGridView) findViewById(R.id.gridview);
// ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
// android.R.layout.simple_list_item_1, numbers);
TextViewAdapter adapter = (TextViewAdapter) new TextViewAdapter(this, numbers);
gridview.setAdapter(adapter);
}
}
layout.xml :
<?xml version="1.0" encoding="utf-8"?>
<com.jaikra.sarit.wecare.TwoWayGridView.TwoWayGridView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/gridView1"
android:numColumns="auto_fit"
android:gravity="center"
android:columnWidth="100dp"
android:stretchMode="columnWidth"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
</com.jaikra.sarit.wecare.TwoWayGridView.TwoWayGridView>
item.xml :
<TextView
android:id="@+id/grid_item_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@+id/label"
android:layout_marginTop="5px"
android:textSize="15px"
xmlns:android="http://schemas.android.com/apk/res/android">
</TextView>
TextViewAdapter.java :
public class TextViewAdapter extends BaseAdapter {
private Context context;
private final String[] textViewValues;
public TextViewAdapter(Context context, String[] textViewValues) {
this.context = context;
this.textViewValues = textViewValues;
}
@Override
public int getCount() {
return textViewValues.length;
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View gridView;
if (convertView == null) {
gridView = new View(context);
gridView = inflater.inflate(R.layout.layout, null);
// set value into textview
TextView textView = (TextView) gridView
.findViewById(R.id.grid_item_label);
textView.setText(this.textViewValues[position]);
textView.setTextColor(Color.GREEN);
} else {
gridView = (View) convertView;
}
return gridView;
}
}
问题:
FATAL EXCEPTION: main java.lang.NullPointerException at com.jaikra.sarit.wecare.TextViewAdapter.getView(TextViewAdapter.java:54)
错误:
这是第 54 和 55 行。
TextView textView = (TextView) gridView
.findViewById(R.id.grid_item_label);
textView.setText(this.textViewValues[position]);
问题:如何解决这个问题?
我需要阅读什么样的编程主题?
经过多次尝试:
我开始相信 twoway-gridview 在幕后有一些与普通 gridView 不同的想法。我已经向原始开发人员公开了这个问题,但欢迎在这里提供任何帮助。
最佳答案
对于 GridView
的项目,你应该inflate
View view = inflater.inflate(R.layout.item, null);
TextView textView= (TextView)view.findViewById(R.id.label);
textView.setText(this.textViewValues[position]);
textView.setTextColor(Color.GREEN);
希望这对您有所帮助。
更新
@Override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View gridView;
if (convertView == null) {
gridView = inflater.inflate(R.layout.item, null);
// set value into textview
TextView textView = (TextView) gridView.findViewById(R.id.label);
textView.setText(this.textViewValues[position]);
textView.setTextColor(Color.GREEN);
} else {
gridView = (View) convertView;
}
return gridView;
}
关于java - 在 twoway-gridView 中访问 TextView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35546090/
如何跳过更新MultiBinding的一些子绑定(bind)?我已经在代码隐藏中定义了一个 MultiBinding ,它需要两次读取-仅属性和一个普通属性生成单个值。在 ConvertBack 的情
双向 View 是一个强大的库,可以使用 RecyclerView 自定义组件网格 下面是我们在使用这个库时遇到的问题的截图,所以我找到了那个问题的解决方案, Reference Question P
编辑:为糟糕的标题道歉,显然像“在代码隐藏中设置绑定(bind)模式”之类的东西不符合 SO 的高度模糊要求。一个明显比当前标题更明显的标题。 原文:我正在尝试在其数据选择器模板后面的代码中设置我的
如何在 jQuery 中实现简单的双向数据绑定(bind)?类似 knockoutJS 的东西,但形式尽可能简单。 场景 - 将 JSON 对象绑定(bind)到表行(每个字段都是 td>input/
我有这个自定义用户控件,它有一个列表和一个按钮: 后面的代码有一个 IEnumerable 类型的 DependencyProperty 和
经过很多小时,我终于找到了导致该错误的问题所在。在显示出现问题的代码之前,我需要解释一下情况。 绑定(bind)和属性结构 在我的应用程序中有一个 ComboBox绑定(bind)为 ItemSour
今天,我根据 UI 设计更改更新了一个 Windows 应用商店应用程序。其中一项更改是将 CheckBox 替换为 ToggleSwitch。 所以代码更新自
我有一个带有复选框的简单 View 和一个带有 [Reactive] 的 viewModel bool 属性。 我希望更改 UI 上的复选框以传播到 viewModel 属性,但我还希望在 viewM
我有一个非常奇怪的问题。根据我的要求,我需要在按钮单击(命令)上打开顶部应用栏,该按钮位于屏幕的右上角,因此当应用栏打开时它将覆盖按钮区域。我正在使用 MVVM 设计方法,并且我已将“IsOpen”属
我创建了包含 TextBox 和 PasswordBox 的自定义用户控件。它绑定(bind)完全有效,但是当我更改用户控件的 TextBox 或 PasswordBox 内的任何值时,我的源属性不会
我有一个页面,其中包含一些用于数据输入的文本框。文本框的绑定(bind)设置为TwoWay。仅当文本框失去焦点时,我的 View 模型中的数据才会更新。如果我单击按钮(例如“保存”),并且文本框仍然具
我需要将一些组合框绑定(bind)到一个 ObservableCollection。我有这个 ListView。 我想将我的集合绑定(bi
我需要将 UI 元素的位置保存到变量中。我将 x 和 y 放入我的集合并绑定(bind)它 { if (this.initialized) {
我想在双向 GridView 中使用 TextView https://github.com/jess-anders/two-way-gridview .我可以成功地将 ArrayAdapter 与双
我试图完成以下任务:设置图像的水平 GridView 而不是正常的垂直 GridView。 我发现大多数 StackOverflow 答案都针对这个库: https://github.com/jess
我总是被这些 ComboBox 弄得筋疲力尽。我想我理解他们,但似乎我不理解。 我不想给一个对象一个父对象。所以我得到了这个子对象,它的值是父项的 ID,我有一个父项的集合。 我从 ComboBox
通过 Binding 同步 2 组数据的最佳方式是什么? Target = Custom Setters - raises custom events whenever something chang
嗨;有源和目标文本框 txttarget 绑定(bind)到 txtsource。在 txtsource 中写东西时,txttarget 发生了变化。一切都很好。但是写在 txttarget 上,我没
我已经多次看到这个问题被问过,并且一遍又一遍地检查了我的代码。但是当我分配给我的 SelectedItem -bound 属性与对象,它不会更新显示的选定项。看来 ListBox认为我分配的对象不是其
再次更新赏金,因为我真的需要知道如何让它发挥作用,或者明确回答为什么它不会。 I've added an alternative explanation of the problem here. 让双
我是一名优秀的程序员,十分优秀!