我有一些显示ListView的代码,允许点击一个项目将其带到一个视图活动。但是,由于某种原因,onClickListener无法正常工作。我认为这可能是由于EditText可以集中精力。但是,在设置为false时,我发现事实并非如此。
listview_item.xml
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/text"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="5sp"
android:textSize="15dp"
android:inputType="textMultiLine">
</TextView>
答案 0 :(得分:0)
删除TextView布局上的inputType属性:
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="5dp"
android:textSize="15sp"/>
另外,您可以看到我分别使用match_parent
和wrap_content
作为宽度和高度。 fill_parent
现已弃用。
匹配父级意味着它将适合整个ListView的宽度,并且包装内容是hieght将根据需要跨越,因此整个文本将是可见的,即使它是多行的。
另一个注意事项:对于文字大小,您使用sp
表示宽度,高度等,使用dp
。 Worthy article进一步解释了这一点。
答案 1 :(得分:0)
一旦执行后台任务将没有句柄。所以你的listview监听器将被杀死。您需要将其从后台删除并将其放在onCreate中。您可以在postExecute中设置一个标志,如果依赖于该标志,则执行。
答案 2 :(得分:0)
在列表项目布局中使用android:descendantFocusability="blocksDescendants"
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:descendantFocusability="blocksDescendants">
<TextView
android:id="@+id/text"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="5sp"
android:textSize="15dp"
android:inputType="textMultiLine" />
</LinearLayout>
fill_parent
替换match_parent
,因为它已被弃用。