gpt4 book ai didi

java - 如何以编程方式隐藏 android 一些但不是全部的 XML 输出中的查看项目?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:38:53 24 4
gpt4 key购买 nike

我正尝试在 Eclipse 上为我的 Android 手机编写一个飞盘高尔夫计分应用程序。我想为最多 6 个玩家设置它,但大多数情况下 2 个人会用它玩游戏。数据存储在 sqlite 数据库中,我正在使用 SimpleCursorAdapter 填充已评分孔的数据。这是代码:

private void fillData() {
Cursor notesCursor = mDbHelper.fetchAllNotes();
startManagingCursor(notesCursor);

// Create an array to specify the fields we want to display in the list (only TITLE)

String[] from = new String[]{DiscGolfDbAdapter.KEY_HOLE,
DiscGolfDbAdapter.KEY_PAR,
DiscGolfDbAdapter.KEY_TOM_HOLE,
DiscGolfDbAdapter.KEY_TOM_GAME,
DiscGolfDbAdapter.KEY_CRAIG_HOLE,
DiscGolfDbAdapter.KEY_CRAIG_GAME,
DiscGolfDbAdapter.KEY_TOMS_POSITION,
DiscGolfDbAdapter.KEY_SKIP_PLAYER
};

// and an array of the fields we want to bind those fields to (in this case just text1)
int[] to = new int[]{R.id.schole, R.id.scpar, R.id.scth, R.id.sctg, R.id.scch, R.id.sccg, R.id.sctp,
R.id.skip};

// Now create a simple cursor adapter and set it to display
SimpleCursorAdapter notes =
new SimpleCursorAdapter(this, R.layout.hole_info, notesCursor, from, to);
setListAdapter(notes);
}

通过搜索互联网,我发现了我认为应该起作用但没有起作用的两种可能性。

首先,我尝试了 XML 属性:android.visibility。在我试图“测试”隐藏的 View 的部分中看起来像这样:

<LinearLayout android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android.visibility="GONE">
<TextView android:id="@+id/scch"
android:layout_width="45dip"
android:gravity="right"
android:textSize="25sp"
android:layout_height="wrap_content"/>
<TextView android:id="@+id/sccg"
android:layout_width="45dip"
android:gravity="right"
android:textSize="25sp"
android:layout_height="wrap_content"/>
</LinearLayout>

我已经用“GONE”、“Gone”和“gone”试过了。它们都不能在 eclipse 模拟器或我的实际手机上工作。因此,尝试参数化此属性没有意义。

接下来,我尝试将 android:layout_height 的 XML 属性设置为“0dip”。当它被硬编码时,这确实适用于模拟器和我的手机。

然后我转到下一个逻辑步骤(如我所见),在数据库中存储一个参数,以便我可以根据记录中的条件“显示”或“不显示”该项目。因此,我在数据库中存储了一个字段,其中包含两个值“0dip”和“wrap_content”。我将它们传递给布局,如上面的 java 中所示,作为 R.id.skip。我还将这些添加到输出中只是为了审核它们是否确实存在。这是 XML:

<LinearLayout android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="@+id/skip">
<TextView android:id="@+id/scch"
android:layout_width="45dip"
android:gravity="right"
android:textSize="25sp"
android:layout_height="wrap_content"/>
<TextView android:id="@+id/sccg"
android:layout_width="45dip"
android:gravity="right"
android:textSize="25sp"
android:layout_height="wrap_content"/>
</LinearLayout>

<TextView android:id="@+id/skip"
android:gravity="center"
android:layout_width="315dip"
android:textSize="10sp"
android:layout_height="wrap_content"/>

在上面的测试中,通过 Eclipse 模拟器和我的 android 手机,最后一个 TextView 确认数据库包含“0dip”或“wrap_content”,但 LinearLayout 包含:

      android:layout_height="@+id/skip">

一直表现得好像是“0dip”。换句话说,我不能以编程方式影响 android:layout_height 的 XML 属性。

如果有更好/更标准的方法来完成我想做的事情,请分享 - 但要清楚。我是新手,所以代码示例最适合我。


5 月 29 日 - 在我看来(基于测试)您无法更改此代码中指定布局的布局属性:

SimpleCursorAdapter notes = new SimpleCursorAdapter(this, 
R.layout.hole_info,
notesCursor, from, to);
setListAdapter(notes);

我尝试的任何事情都会导致一些错误或另一个错误。因此,我看到了自定义列表适配器的示例,其中这些属性已更改,因此我正在尝试转换为自定义列表适配器。

最佳答案

为什么不用代码呢?

LinearLayout ll = (LinearLayout)findViewById(R.id.your_layout_id);
ll.setVisibility(View.GONE);

关于java - 如何以编程方式隐藏 android 一些但不是全部的 XML 输出中的查看项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6163039/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com