ArrayAdapter<String> adapter1 = new ArrayAdapter<String>(Application.getContext(), R.layout.report_add_list_item, ListUtil.asStringList(ContactServiceUtil.getContacts()));
multiAutoCompleteContacts = (MultiAutoCompleteTextView) findViewById(R.id.multiAutoCompleteGuests);
multiAutoCompleteContacts.setAdapter(adapter1);
multiAutoCompleteContacts.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());
multiAutoCompleteContacts.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
System.out.println("click");
}
public void onNothingSelected(AdapterView<?> adapterView) {
return;
}
});
Run Code Online (Sandbox Code Playgroud)
我没有进入onItemSelected.我需要通过位置选择我的列表中的哪一个来获取ID.
我已经创建了一个自定义适配器实现.我在这个适配器中也有一些不同的视图类型.
我需要在运行时替换我的适配器的一些视图.Romain Guy说"......动态更改视图类型计数,这是一个很大的错误"(请参阅ArrayAdapter和ListView - ArrayIndexOutOfBoundsException).当视图类型计数动态变化时,这样做的正确方法是什么?
AdapterCode:
...
private List<Class<?>> itemTypes = new ArrayList<Class<?>>(20);
private void initList(List<Object> items) {
itemTypes = new ArrayList<Class<?>>(20);
positionSection = new SparseArray<Integer>(items.size());
int count = 0;
int sectionIndex = -1;
for (Object object : items) {
Class<?> currentClass = object.getClass();
if (object instanceof String) {
sectionIndex = count;
}
if (!itemTypes.contains(currentClass)) {
itemTypes.add(currentClass);
}
positionSection.put(count, sectionIndex);
count++;
}
}
@Override
public int getItemViewType(int position) {
return itemTypes.indexOf(items.get(position).getClass());
}
@Override
public int getViewTypeCount() {
int …Run Code Online (Sandbox Code Playgroud) android android-listview android-adapter android-adapterview
新的AdapterView.OnItemClickListener(){}类型必须实现继承的抽象方法AdapterView.OnItemClickListener.onItemClick(AdapterView,View,int,long)
为什么我在尝试构建教程时收到此消息
package Fedail.Hello.Layout;
import android.app.Activity;
import android.os.Bundle;
import android.widget.*;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView.OnItemClickListener;
public class Layout_Feras extends Activity {
/** Called when the activity is first created. */
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
GridView gridview = (GridView) findViewById(R.id.gridview);
gridview.setAdapter(new ImageAdapter(this));
gridview.setOnItemClickListener(new OnItemClickListener(){
public void onItemClick(AdapterView<?> parent, View v, int position, Long id){
Toast.makeText(Layout_Feras.this,"" + position, Toast.LENGTH_SHORT).show();
}
}
);
}
}
Run Code Online (Sandbox Code Playgroud) 我的适配器上有一个有点奇怪的错误.适配器正在创建的视图是左侧的缩略图和带有几行的表.每行有两个textview.
其中一个textview具有android:autoLink="web"属性集,listview上有一个onItemClickListener.
问题是,每当TextView自动链接它的内容时,下次转换其父视图时,它就不再从onItemClickListener接收点击.
让我用一个例子来澄清:
textview的自动链接功能肯定会改变我的布局,但我不知道是什么.在我的适配器上每次调用getView时都必须重置一个属性,但是哪个?
谢谢你的帮助.
编辑
让我们看一些代码,这是非常标准/良好的做法.来自我的适配器的getView是:@Override public View getView(int position,View convertView,ViewGroup parent){
// Inflate a new layout if needed
if (convertView == null)
convertView = createNewView();
// Gets the item from my array
AGplus item = (AGplus) getItem(position);
// Gets the holder pointing to the views
Holder h = (Holder) convertView.getTag();
// That's a test version, I won't be using date.toString() later on
h.date.setText(new Date(item.getDate()).toString());
// This guys is giving …Run Code Online (Sandbox Code Playgroud) 我正在创建一个简单的主屏幕小部件,用于显示简单的图像幻灯片。为了在图像之间切换,我使用的AdapterViewFlipper是每 1.5 秒显示下一张图像。这工作正常,但在从一个图像到下一个图像的过渡期间,它似乎淡出和淡入(几乎像过渡动画),我想禁用它。我怎样才能这样做呢?我已经在布局 XML 中禁用了动画,但没有帮助。我很困惑。
这是我包含鳍状肢的布局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/widget_layout"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/widget_frame"
android:orientation="vertical"
android:textAlignment="gravity" >
<AdapterViewFlipper
android:id="@+id/image_flipper"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_below="@+id/widget_icon"
android:animateLayoutChanges="false"
android:autoStart="true"
android:flipInterval="1500" >
</AdapterViewFlipper>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
当应用程序小部件加载时,我将翻转器绑定到它的适配器:
Intent ittSlides = new Intent(ctxContext, SlideService.class);
ittSlides.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, intInstance);
ittSlides.setData(Uri.fromParts("content", String.valueOf(new Random().nextInt()), null));
ittSlides.putExtra("data", strContent);
RemoteViews remView = new RemoteViews(ctxContext.getPackageName(), R.layout.widget);
remView.setRemoteAdapter(R.id.image_flipper, ittSlides);
AppWidgetManager.getInstance(ctxContext).updateAppWidget(intInstance, remView);
Run Code Online (Sandbox Code Playgroud)
..这是我的实际适配器。
public class SlideFactory implements RemoteViewsFactory {
private JSONArray jsoImages;
private final Context ctxContext;
private RemoteViews remView;
public SlideFactory(Context ctxContext, Intent ittIntent) {
remView …Run Code Online (Sandbox Code Playgroud) 那么为什么不总是调用toString?这是使用Android API的示例.
例如
@Override
public void onItemSelected(AdapterView<?> adapterView, View view,
int position, long id) {
Toast.makeText(this, adapterView, Toast.LENGTH_LONG).show();
}
Run Code Online (Sandbox Code Playgroud)
不会编译.但是,如果我将其更改为
@Override
public void onItemSelected(AdapterView<?> adapterView, View view,
int position, long id) {
Toast.makeText(this, adapterView.toString(), Toast.LENGTH_LONG).show();
}
Run Code Online (Sandbox Code Playgroud)
它会.实际差异是什么?
我有一个动态列表..
我想用适配器按钮在适配器视图中显示该列表.在一个组中.
我用了:
public class Type2Adapter extends BaseAdapter{
Context context;
LayoutInflater inflater;
ArrayList<QueOption> oplist;
String list1;
int count;
RadioGroup radiogroup;
String dot,more;
public Type2Adapter(Context context,ArrayList<QueOption> arrayList){
this.context = context;
inflater = LayoutInflater.from(context);
oplist = arrayList;
count = oplist.size();
if(count>=1){
count = oplist.size();
}else{
count = 1;
}
}
@Override
public int getCount() {
return count;
}
@Override
public Object getItem(int position) {
return position;
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View …Run Code Online (Sandbox Code Playgroud) 我正在将我的应用程序窗口小部件中的ListView更改为AdapterViewFlipper.问题是,我需要处理项目上的点击.它完美地将setPendingIntentTemplate()的待定意图模板设置到整个ListView,并使用setOnClickFillInIntent()为每个项设置fillInIntent.但现在,使用AdapterViewFlipper,它不再起作用了.我错过了什么吗?
我在listview中使用切片时遇到了问题.我需要使用viewholder使listview滚动顺利,但我不知道如何实现两个视图,因为两个单独的视图一个是节,第二个是简单的条目.这是我尝试的代码和我得到的错误.请告诉我我在哪里做错了,我该如何纠正它:
码
@
Override
public View getView(int position, View convertView, ViewGroup parent) {
final GroupAccountdto i = items.get(position);
if (i != null) {
if (i.isSection()) {
if (convertView == null) {
convertView = vi.inflate(R.layout.list_group_section, null);
ViewHolderGroup group_holder = new ViewHolderGroup();
group_holder.group_name = (TextView) convertView.findViewById(R.id.list_section_group_name);
convertView.setTag(group_holder);
}
ViewHolderGroup group_holder = (ViewHolderGroup) convertView.getTag();
GiddhGroups si = (GiddhGroups) i;
group_holder.group_name.setText(si.getGroupname());
} else {
if (convertView == null) {
convertView = vi.inflate(R.layout.list_item_account, null);
ViewHolderAccount account_holder = new ViewHolderAccount();
account_holder.account_name = (TextView) convertView.findViewById(R.id.list_item_account_name);
account_holder.account_bal = …Run Code Online (Sandbox Code Playgroud) java android android-layout android-listview android-adapterview
我需要在Android上实现类似last.fm标签云的行为.
这意味着:我的物品有android:layout_width="wrap_content",我需要水平显示,直到物品不适合水平放置View,这将是下一行的第一项.我也想用一个填充视图ListAdapter.
编写这样的视图似乎过于复杂.是否有任何图书馆项目可以达到这种效果?