小编PH7*_*PH7的帖子

如何使用兼容性库获取"?android:attr/actionBarSize"

我正在尝试在Android 2.2项目中使用Fragments和ActionBar.使用"?android:attr/actionBarSize"时有一些错误,如何正确获取和设置该值?

例:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/frags">

    <fragment class="com.example.android.hcgallery.TitlesFragment"
            android:id="@+id/frag_title"
            android:visibility="gone"
            android:layout_marginTop="?android:attr/actionBarSize"
            android:layout_width="@dimen/titles_size"
            android:layout_height="match_parent" />

    <fragment class="com.example.android.hcgallery.ContentFragment"
            android:id="@+id/frag_content"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />

</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

错误:找不到与给定名称匹配的资源(在'layout_marginTop'中,值为'?android:attr/actionBarSize').

android android-layout android-compatibility

8
推荐指数
2
解决办法
1万
查看次数

setItemChecked(int position,boolean value)不起作用?

我有一个listview,可以自定义显示图像和2 textview.我只是想突出我列表中的一个项目.

首先,我使用listview的setSelection方法,我终于发现它不是因为它不在触摸模式下工作.

所以,我做了一些搜索,发现我需要使用setItemChecked方法.因此,我制作了一个状态列表颜色.

<?xml version="1.0" encoding="UTF-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_checked="true" android:drawable="@color/checkbox_bg_fcs" />
    <item android:drawable="@color/WHITE" />
</selector>
Run Code Online (Sandbox Code Playgroud)

我用它来设置我的自定义列表项的背景颜色.

从List活动中,我将setItemChecked(position,true)调用到listview的特定索引.

不幸的是,它似乎对我不起作用.有什么遗漏?谁有运气呢?

注意**,我确实从网络中检索了列表视图的数据.我的listview中有数据之后才进行setItemChecked.
我的列表视图也是单选模式.

android listview listitem

7
推荐指数
2
解决办法
1万
查看次数

包含花括号的URL的HttpClient问题

我在我的Android应用程序中使用HttpClient.在某些时候,我必须从远程位置获取数据.下面是我如何利用HttpClient获取响应的片段.

String url_s = "https://mydomain.com/abc/{5D/{B0blhahblah-blah}I1.jpg"; //my url string
DefaultHttpClient httpClient = new DefaultHttpClient();
response = httpClient.execute(new HttpGet(url_s));
Run Code Online (Sandbox Code Playgroud)

它在大多数情况下都可以正常工作,但是当我的url中有一些花括号基本上是String时就不行了.堆栈跟踪显示花括号的索引,表示无效字符.所以我尝试从编码的URL创建URI.

URL url = new URL(url_s);
URI uri = url.toURI();
response = httpClient.execute(new HttpGet(uri));
Run Code Online (Sandbox Code Playgroud)

在这样做之后,我根本没有从远程位置获得结果.我解决了这个问题并通过更换大括号来修复它

  • "{"with"%7B"
  • 带有"%7D"的"}"

但我对我的解决方案并不完全满意.还有更好的解决方案吗?有什么东西整洁而不像我的硬编码?

android httpclient

6
推荐指数
1
解决办法
7410
查看次数