标签: android-adapterview

MultiAutoCompleteTextView无法使用OnItemSelectedListener

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.

android android-adapterview

5
推荐指数
1
解决办法
532
查看次数

动态更新ListView的视图类型

我已经创建了一个自定义适配器实现.我在这个适配器中也有一些不同的视图类型.

我需要在运行时替换我的适配器的一些视图.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

5
推荐指数
1
解决办法
2513
查看次数

新的AdapterView.OnItemClickListener(){}类型必须实现继承的抽象方法AdapterView.OnItemClickListener)

新的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)

android android-adapterview

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

滚动listView后,convertView会丢失onitemClick

我的适配器上有一个有点奇怪的错误.适配器正在创建的视图是左侧的缩略图和带有几行的表.每行有两个textview.

其中一个textview具有android:autoLink="web"属性集,listview上有一个onItemClickListener.

问题是,每当TextView自动链接它的内容时,下次转换其父视图时,它就不再从onItemClickListener接收点击.

让我用一个例子来澄清:

  • view1,view2,view3和view4位于屏幕上的列表视图中.
  • view2有一个链接,它出现,并点击该链接打开.
  • 项目单击对于view1,view 3和view4正常工作.
  • 滚动列表视图,view1转换为position5,然后view2转换为position6.
  • position6处的项目不包含链接,但也不会为position6元素触发onItemClick.

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)

android android-adapter android-adapterview

3
推荐指数
1
解决办法
1849
查看次数

为什么我的 AdapterViewAdapter 在 AppWidget 中使用时会闪烁?

我正在创建一个简单的主屏幕小部件,用于显示简单的图像幻灯片。为了在图像之间切换,我使用的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)

java android android-adapterview android-appwidget

3
推荐指数
1
解决办法
650
查看次数

为什么不总是自动调用toString()

那么为什么不总是调用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)

它会.实际差异是什么?

java android android-adapterview

2
推荐指数
3
解决办法
2475
查看次数

如何在adapterView中使用radiongroup生成动态RadioButton?

我有一个动态列表..

我想用适配器按钮在适配器视图中显示该列表.在一个组中.

我用了:

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)

android adapter radio-button android-adapterview

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

应用程序窗口小部件中的AdapterViewFlipper:setPendingIntentTemplate()和setOnClickFillInIntent()无法正常工作

我正在将我的应用程序窗口小部件中的ListView更改为AdapterViewFlipper.问题是,我需要处理项目上的点击.它完美地将setPendingIntentTemplate()的待定意图模板设置到整个ListView,并使用setOnClickFillInIntent()为每个项设置fillInIntent.但现在,使用AdapterViewFlipper,它不再起作用了.我错过了什么吗?

android android-adapterview android-appwidget

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

如何在单个适配器中使用两个Viewholder

我在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

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

GridView具有可变宽度的项目

我需要在Android上实现类似last.fm标签云的行为.

这意味着:我的物品有android:layout_width="wrap_content",我需要水平显示,直到物品不适合水平放置View,这将是下一行的第一项.我也想用一个填充视图ListAdapter.

编写这样的视图似乎过于复杂.是否有任何图书馆项目可以达到这种效果?

android listadapter android-adapterview

0
推荐指数
1
解决办法
1829
查看次数