我想写一个ListView基本格式,但我收到一个错误:
UnsupportedOperationException: addView(View, LayoutParams) is not supported in AdapterView
Run Code Online (Sandbox Code Playgroud)
和:
androidview.LayoutInfalater.inflate(LayoutInflater.java: some numbers....like 720,658...so on)
Run Code Online (Sandbox Code Playgroud)
我知道应该在适配器类中完成一些事情:
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
RelativeLayout rv = new RelativeLayout(c);
TextView tv = new TextView(c);
TextView tv1 = new TextView(c);
ImageView imgv = new ImageView(c);
tv.setText(s[position]);
tv1.setText(i[position]);
imgv.setImageResource(d[position]);
rv.addView(tv);
rv.addView(tv1);
rv.addView(imgv);
return rv;
}
Run Code Online (Sandbox Code Playgroud)
我该怎么做才能解决问题
LOGCAT:
02-20 16:40:24.967: E/Trace(1715): error opening trace file: No such file or directory (2)
02-20 16:40:25.819: W/ResourceType(1715): No …Run Code Online (Sandbox Code Playgroud) 任何人都可以解释滚动视图和列表视图之间的区别吗?什么时候使用哪一个?哪一个更有效率?
我在自定义arrayAdapter中实现自定义getFilter时遇到问题.实际上我不知道如何实现它.试过各种代码,但仍然没有运气.这是我的自定义数组适配器.
package com.test.FilterableList.Adapters;
import java.util.ArrayList;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.TextView;
import com.test.FilterableList.Models.ListTO;
import com.test.FilterableList.R;
import android.widget.Filterable;
public class FilterableAdapter extends ArrayAdapter<ListTO> implements Filterable {
// declaring our ArrayList of items
public ArrayList<ListTO> objects;
/* here we must override the constructor for ArrayAdapter
* the only variable we care about now is ArrayList<Item> objects,
* because it is the list of objects we want to display.
*/
public FilterableAdapter(Context context, int textViewResourceId, ArrayList<ListTO> objects) …Run Code Online (Sandbox Code Playgroud) 我正在实现一个无尽的ListView(就像在Twitter应用程序中).我想让最后一个项目无法选择.因此,如果选择了倒数第二个项目并且我使用我的轨迹球向下滚动,则没有任何反应.我尝试设置android:focusable ="false"和android:cickable ="false"但我没有注意到任何chnage.
我的ListView有一个简单的选择器
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/yellow_arc" android:state_activated="true"/>
<item android:drawable="@drawable/yellow_nonarc" android:state_activated="false"/>
</selector>
Run Code Online (Sandbox Code Playgroud)
当视图的状态从激活变为未激活时,我希望为这些绘图之间的过渡设置动画,反之亦然.
如果您在API演示中运行示例,则会在视图的激活状态发生更改时看到明显的淡入/淡出动画.
所以我想要的是一个自定义动画,同时改变视图的状态.我认为它应该通过xml完成,但我找不到方法.
提前致谢.
编辑:
我想我找到了一些有用的东西activated_background.xml,\Android\android-sdk\platforms\android-API_VERSION\data\res\drawable其中包括
<selector xmlns:android="http://schemas.android.com/apk/res/android"
android:exitFadeDuration="@android:integer/config_mediumAnimTime">
<item android:state_activated="true" android:drawable="@android:drawable/list_selector_background_selected" />
<item android:drawable="@color/transparent" />
</selector>
Run Code Online (Sandbox Code Playgroud)
因此API演示中的示例通过声明一个来实现这个淡出动画exitFadeDuration.然而,这并不是我想要的.我想为状态drawables之间的过渡声明自定义动画,因为淡入/淡出动画对我的drawable来说看起来不太好.
因此,我有一个包含2 ListView个小部件的活动,当您在第一个中选择一个值时,第二个将填充与第一个中的选择相关的值ListView.这个机制没有问题,但现在我希望用户选择保持突出显示.我已经阅读了与此主题相关的一个很好的问题,似乎有很多方法可以实现这一点但是在尝试了4-5之后,我仍然无法让它工作.
我已经ListView使用android:listSelector="#CCCCCC"XML属性在第二个工作了,但是一旦OnItemClickListener引入混合(这就像我第一次使用的那个ListView),这似乎被擦干净了.
到目前为止,这是我得到的:
自定义OnItemClickListener我发现浏览关于这个主题的各种答案(稍微修改它,以便它加载我的信息第二个ListView):
private class ItemHighlighterListener implements OnItemClickListener {
private View oldSelection = null;
public void clearSelection() {
if(oldSelection != null) {
oldSelection.setBackgroundColor(android.R.color.transparent);
}
}
public void onItemClick(AdapterView<?> parent, View view, int pos, long id) {
clearSelection();
oldSelection = view;
view.setBackgroundDrawable(view.getContext().getResources().getDrawable(R.drawable.list_selector));
loadClubs(mXMLPortalOptions.getRegion(pos).getId());
mClubList.setAdapter(new ArrayAdapter<String>(getApplicationContext(), R.layout.list_item_white, mClubs));
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的list_selector.xml档案:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_selected="true"><shape>
<solid android:color="#CCCCCC" />
</shape></item>
<item android:state_selected="false"><shape>
<solid …Run Code Online (Sandbox Code Playgroud) 这是我的listview点击事件:
lv1.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> a, View v, int position, long id) {
Object o = lv1.getItemAtPosition(position);
ItemDetails obj_itemDetails = (ItemDetails)o;
Toast.makeText(ListViewImagesActivity.this, "You have chosen : " + " " + obj_itemDetails.getName(), Toast.LENGTH_LONG).show();
}
});
Run Code Online (Sandbox Code Playgroud)
这是我的按钮点击事件:
btnNxt = (Button) findViewById(R.id.btnNext);
btnNxt.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
//Here I need to get that position
});
Run Code Online (Sandbox Code Playgroud)
现在我需要获得点击的listview项目的位置..我已经全局声明了postion但总是给我位置1.
谁能说我怎么得到这个位置?
android listitem buttonclick android-listview android-button
ListView在iOS上重新排序项目非常简单.现在我想在Android上做同样的事情,但它似乎相当麻烦:SDK不支持项目重新排序,并且必须自己实现它或使用第三方实现.
我找到了几个处理这个问题的文章和帖子,但它们都很老(2 - 3年).例如,bauerca DragSortListView在许多地方被引用,但不再维护该项目.由于我的应用程序应该支持Android 4+,我只想询问是否有更好的做法.
当然,拖放重新排序对于用户来说是最方便的方式,但我对任何有效的解决方案都是开放的(例如使用带有向上/向下的上下文菜单)
在Android 4+中提供商品重新订购的最佳方式是什么?
有没有像默认/标准的方式这样做?
我有一个自定义ViewSwitcher,我实现了触摸事件,所以我可以使用触摸屏滚动屏幕.
我的布局层次结构如下所示:
<ViewSwitcher>
<LinearLayout>
<ListView />
</LinearLayout>
<LinearLayout>
<ListView />
</LinearLayout>
</ViewSwitcher>
Run Code Online (Sandbox Code Playgroud)
现在,问题是触摸事件正被消耗
ListViews,我无法切换视图.当我没有时,它工作正常ListViews.我需要能够滚动浏览视图并滚动查看ListView.
我该如何解决这个问题?
编辑:我还需要ListView可点击的项目.
提前致谢!
我有这个ListView只需要显示数据.
所以我不想让它可点击.
首先,我尝试将XML listview更改为:
<ListView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:clickable="false" >
Run Code Online (Sandbox Code Playgroud)
但它没有用.
所以要解决我的问题,我通过代码设置:
list.setSelector(android.R.color.transparent);
Run Code Online (Sandbox Code Playgroud)
但我无法相信没有更好的解决方案.任何的想法?
android ×10
android-listview ×10
listview ×2
animation ×1
buttonclick ×1
clickable ×1
highlighting ×1
listitem ×1
transition ×1