无法查看以设置 LISTVIEW 的元素
Can't get view to set elements of LISTVIEW
'listView' 有问题。我到处搜索,但没有出现问题none。让我解释一下:
我的 'layout' 中有 classic 'listview':
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:id="@+id/roza"
android:tileMode="repeat">
<ListView
android:id="@android:id/list"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#80ffffff"
android:alpha="200">
</ListView>
<TextView
android:id="@android:id/empty"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/no_todos" />
</LinearLayout>
我创建自定义 list_row xml:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="New Text"
android:id="@+id/list_name"
android:layout_alignParentTop="true"
android:textSize="25dp"
android:layout_alignParentStart="true"
android:layout_alignEnd="@+id/list_rune" />
------------bla bla bla -----------------
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="New Text"
android:layout_alignTop="@+id/list_date_update"
android:layout_toLeftOf="@+id/list_rune"
android:layout_toStartOf="@+id/list_rune"
android:id="@+id/textTester" />
</RelativeLayout>
我的主class -
public class MainActivity extends ListActivity implements AdapterView.OnItemLongClickListener, SharedPreferences.OnSharedPreferenceChangeListener {
private NordBase dbHelper;
private Cursor cursor;
int rage = list_row; // my custom row
-------------------on create----------------
setContentView(R.layout.activity_main);
this.getListView().setDividerHeight(2);
dbHelper = new NordBase(this);
fillData();
----------------填充数据----------------
cursor = dbHelper.getAll();
startManagingCursor(cursor);
String[] from = new String[] { NordBase.NORD_NAME, NordBase.NORD_DESCRIPTION,
NordBase.NORD_PUNKTS, NordBase.NORD_PUNKTS_CROSS,
NordBase.NORD_DATE_CREATE, NordBase.NORD_DATE_UPDATE, NordBase.NORD_RUNE,
NordBase.NORD_IMPORTANT, NordBase.NORD_SUM };
int[] to = new int[] { R.id.list_name, R.id.list_description, R.id.list_punkts,
R.id.list_punkts_cross, R.id.list_date_create, R.id.list_date_update,
R.id.list_rune, R.id.list_important, R.id.list_sum, };
notes = new SimpleCursorAdapter(this,
rage, cursor, from, to);
setListAdapter(notes);
getListView().setOnItemLongClickListener(this);
唉,我无法获取 list_row 中的项目,无法为比较运算符绑定它们。对于 exp:如果价格 == 0,则 textview.setvisible = false...
我尝试使用 LayoutInflater,但他使视图元素与列表视图中的元素不同。
我尝试了适配器活页夹 class - 但我认为这对它没有好处。
大多数情况下我有一个错误 - 无法为 "null element" 执行此操作...那种情况 - 看起来像我所做的一切 - 我的程序无法在 list_row.[=15= 中找到 ViewById 元素]
有一个联系点
int[] to = new int[] { R.id.list_name, R.id.list_description, R.id.list_punkts,
R.id.list_punkts_cross, R.id.list_date_create, R.id.list_date_update,
R.id.list_rune, R.id.list_important, R.id.list_sum, };
notes = new SimpleCursorAdapter(this,
rage, cursor, from, to);
Obi-Van Kenobi 帮帮我,对不起我的虚拟 ENG,我不确定我是否以正确的方式通过鳕鱼)))
首先你的布局没有你在适配器中提到的视图
R.id.list_description, R.id.list_punkts,
R.id.list_punkts_cross, R.id.list_date_create, R.id.list_date_update,
R.id.list_rune, R.id.list_important, R.id.list_sum
把这个东西放在布局中list_row xml
如果你的意思是------------bla bla bla ------------------
这个意见比确定
simpleCursorAdapter
也不会解决您的目的,因为您想根据各自视图中的数据隐藏和显示视图
所以我的第一个建议是将您的布局更改为 linearLayout
或 tableLayout
或您认为的其他布局,然后在您的 CustomAdapter
class 中执行此操作
喜欢
class MyAdapter extends BaseAdapter
{
@Override
public View getView(int position, View convertView, ViewGroup parent) {
//here you infalteYour layout and and do your logical thing
//you can take your data out from cursor and store in the arrayList<YourModelClass> type and have better control
}
}
否则在相对布局中只填充数据而不隐藏它所以它可能会起作用但是如果你隐藏一些视图的可能性很高它不会解决你的问题
有打字错误我希望如此
int[] to = new int[] { R.id.list_name, R.id.list_description, R.id.list_punkts,
R.id.list_punkts_cross, R.id.list_date_create, R.id.list_date_update,
R.id.list_rune, R.id.list_important, R.id.list_sum, };
//这里没有项目,但你仍然在 R.id.list_sum 之后写了 "," 这样 "R.id.list_sum, "
notes = new SimpleCursorAdapter(this,
rage, cursor, from, to);
'listView' 有问题。我到处搜索,但没有出现问题none。让我解释一下:
我的 'layout' 中有 classic 'listview':
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:id="@+id/roza"
android:tileMode="repeat">
<ListView
android:id="@android:id/list"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#80ffffff"
android:alpha="200">
</ListView>
<TextView
android:id="@android:id/empty"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/no_todos" />
</LinearLayout>
我创建自定义 list_row xml:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="New Text"
android:id="@+id/list_name"
android:layout_alignParentTop="true"
android:textSize="25dp"
android:layout_alignParentStart="true"
android:layout_alignEnd="@+id/list_rune" />
------------bla bla bla -----------------
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="New Text"
android:layout_alignTop="@+id/list_date_update"
android:layout_toLeftOf="@+id/list_rune"
android:layout_toStartOf="@+id/list_rune"
android:id="@+id/textTester" />
</RelativeLayout>
我的主class -
public class MainActivity extends ListActivity implements AdapterView.OnItemLongClickListener, SharedPreferences.OnSharedPreferenceChangeListener {
private NordBase dbHelper;
private Cursor cursor;
int rage = list_row; // my custom row
-------------------on create----------------
setContentView(R.layout.activity_main);
this.getListView().setDividerHeight(2);
dbHelper = new NordBase(this);
fillData();
----------------填充数据----------------
cursor = dbHelper.getAll();
startManagingCursor(cursor);
String[] from = new String[] { NordBase.NORD_NAME, NordBase.NORD_DESCRIPTION,
NordBase.NORD_PUNKTS, NordBase.NORD_PUNKTS_CROSS,
NordBase.NORD_DATE_CREATE, NordBase.NORD_DATE_UPDATE, NordBase.NORD_RUNE,
NordBase.NORD_IMPORTANT, NordBase.NORD_SUM };
int[] to = new int[] { R.id.list_name, R.id.list_description, R.id.list_punkts,
R.id.list_punkts_cross, R.id.list_date_create, R.id.list_date_update,
R.id.list_rune, R.id.list_important, R.id.list_sum, };
notes = new SimpleCursorAdapter(this,
rage, cursor, from, to);
setListAdapter(notes);
getListView().setOnItemLongClickListener(this);
唉,我无法获取 list_row 中的项目,无法为比较运算符绑定它们。对于 exp:如果价格 == 0,则 textview.setvisible = false...
我尝试使用 LayoutInflater,但他使视图元素与列表视图中的元素不同。 我尝试了适配器活页夹 class - 但我认为这对它没有好处。 大多数情况下我有一个错误 - 无法为 "null element" 执行此操作...那种情况 - 看起来像我所做的一切 - 我的程序无法在 list_row.[=15= 中找到 ViewById 元素]
有一个联系点
int[] to = new int[] { R.id.list_name, R.id.list_description, R.id.list_punkts,
R.id.list_punkts_cross, R.id.list_date_create, R.id.list_date_update,
R.id.list_rune, R.id.list_important, R.id.list_sum, };
notes = new SimpleCursorAdapter(this,
rage, cursor, from, to);
Obi-Van Kenobi 帮帮我,对不起我的虚拟 ENG,我不确定我是否以正确的方式通过鳕鱼)))
首先你的布局没有你在适配器中提到的视图
R.id.list_description, R.id.list_punkts,
R.id.list_punkts_cross, R.id.list_date_create, R.id.list_date_update,
R.id.list_rune, R.id.list_important, R.id.list_sum
把这个东西放在布局中list_row xml
如果你的意思是------------bla bla bla ------------------
这个意见比确定
simpleCursorAdapter
也不会解决您的目的,因为您想根据各自视图中的数据隐藏和显示视图
所以我的第一个建议是将您的布局更改为 linearLayout
或 tableLayout
或您认为的其他布局,然后在您的 CustomAdapter
class 中执行此操作
喜欢
class MyAdapter extends BaseAdapter
{
@Override
public View getView(int position, View convertView, ViewGroup parent) {
//here you infalteYour layout and and do your logical thing
//you can take your data out from cursor and store in the arrayList<YourModelClass> type and have better control
}
}
否则在相对布局中只填充数据而不隐藏它所以它可能会起作用但是如果你隐藏一些视图的可能性很高它不会解决你的问题
有打字错误我希望如此
int[] to = new int[] { R.id.list_name, R.id.list_description, R.id.list_punkts,
R.id.list_punkts_cross, R.id.list_date_create, R.id.list_date_update,
R.id.list_rune, R.id.list_important, R.id.list_sum, };
//这里没有项目,但你仍然在 R.id.list_sum 之后写了 "," 这样 "R.id.list_sum, "
notes = new SimpleCursorAdapter(this,
rage, cursor, from, to);