我在我的页面有一个弹出窗口,它有一个列表视图。我在一个单独的xml中创建了弹出窗口的设计,并在我的主页上点击一些按钮加载它。弹出窗口有一个列表视图,每一行都有一个图像和一个文本视图。我无法在Android4.1的列表视图中获得行选择,但它在5.0中工作。有人能建议我解决方案吗?列表视图:
<ListView android:id="@+id/lstSites"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:fastScrollEnabled="true"
android:layout_margin="5dp"
android:descendantFocusability="blocksDescendants"></ListView>
</LinearLayout>
列表项:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:descendantFocusability="blocksDescendants"
android:focusable="false"
android:focusableInTouchMode="false">
<ImageView
android:id="@+id/thumbImage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:layout_marginRight="10dp"
android:focusable="false"
android:focusableInTouchMode="false"/>
<TextView
android:id="@+id/tvSite"
android:textSize="20dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:text="Name"
android:focusable="false"
android:focusableInTouchMode="false"/>
添加行单击列表:
lstSiteMenu = (ListView) popupView.findViewById(R.id.lstSites);
adapter = new MenuItemsAdapter(SiteActivity.this, arrMenu);
// Attach the adapter to a ListView
lstSiteMenu.setAdapter(adapter);
lstSiteMenu.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
final int position, long id) {
}
您需要从您的列表视图中删除
android:genderantfocusability=“blocksDescendants”
。
同时从
图像视图和
文本视图中的行布局中删除
android:focusableInTouchMode=“false”和
android:focusableInTouchMode=“false”
。
列表项应该是可点击的,有禁用它获得焦点
从listview中删除此属性,android:genderantFocusability=“blocksDescendants”
和
android:focusable="false"
android:focusableInTouchMode="false"
从文本和图像视图。
试试这个例子,
String names[] ={"A","B","C","D"};
AlertDialog.Builder alertDialog = new AlertDialog.Builder(MainActivity.this);
LayoutInflater inflater = getLayoutInflater();
View convertView = (View) inflater.inflate(R.layout.row_file, null);
alertDialog.setView(convertView);
alertDialog.setTitle("List");
ListView lv = (ListView) convertView.findViewById(R.id.listView);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,names);
lv.setAdapter(adapter);
alertDialog.show();
否则你的代码就可以了。它起作用了。
有关更多详细信息,请浏览此链接。
另一个官方链接也是如此。
尝试所有解决方案:
popupwindow.setFocusale(true);
listView xml : "android:focusable="true"
不要使用lstSiteMenu。setOnItemClickListener
而是转到适配器getView
并添加
convertView.setOnClickListener
希望对你有帮助!
我开发了一个java gui,其中包含两个jTextField视图,用于显示源文件路径和目标文件路径。并且,用户选择了多个文件路径,我希望在JTextField附带的弹出窗口中显示以前的路径。这是几乎所有APP中的通用功能。有没有人知道这是怎么叫的,为了谷歌怎么做?
我在列表视图中使用微调器,但它在列表视图中不能正常工作。我能够在微调器中显示所需的值,但无法从微调器中获取选定的项目值。 它没有打印任何东西。布局:
我点击了一个链接,它打开了一个小窗口/popup/iframe,弹出窗口有XPath: 它没有window_id,但在firebug中,标识符将窗口显示为 ,所以我假设它是弹出窗口;如果我错了请纠正我。 详细html:是元素的xpath,而作为html则是,详细说明:` 匿名用户 试试这个:
问题内容: 我正在尝试使用wunderground的api,Leaflet和Cloudmade将天气图标显示在地图标记中。我已经显示了文本和带有图标图像的变量,但是我不确定如何显示它。这是我的代码: 我尝试了一下但没有成功: 有什么建议? 问题答案: 标记的bindPopup方法仅将HTML内容作为字符串,因此您还需要在标记周围加上引号-类似于 应该为您工作。
我正在使用Eclipse进行Android编程。不知何故(我可能不小心关闭了它),包资源管理器(通常在左边)已经不在那里了。我怎么让它回到原来的位置?我尝试了窗口>显示视图>包资源管理器,但它什么也没做。我还尝试了Window>Open Perspective>Java浏览,它打开了Package Explorer,但位置不对,还打开了一堆其他不想要的东西。我现在在Java透视图中。 如何使包资源
我有一个窗口窗体,包含两个列表视图(例如,命名为a和b)和一个按钮。当两个列表视图之间有焦点时,按钮的功能应该是以不同的方式显示消息框。 所以按钮的代码是 然而,当我在“b”列表视图中选择该项时。它总是返回MessageBox。节目(b)。当我重新开始并在“a”列表视图中选择一个项目时,它会给我一个空引用异常。 代码有什么问题吗?