【问题标题】:How to change layout of only selected listview row with in onitemclicklistener of listview如何在列表视图的 onitemclicklistener 中更改仅选定列表视图行的布局
【发布时间】:2013-02-07 08:02:41
【问题描述】:

我需要创建ListView,例如Samsung Contact List。我需要显示该行的自定义布局,而该行是swiped。并且还需要在该行的背景显示联系方式。请给我一些想法或参考。

谢谢。

list.setOnItemClickListener(stationSelectionListener);
final ListSwipeDetector listSwipeDetector=new ListSwipeDetector();
list.setOnTouchListener(listSwipeDetector);
new UserAndMessageCount(StationListActivity.this).execute();
list.setOnItemClickListener(new OnItemClickListener() {
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                if (listSwipeDetector.swipeDetected()){
                    Toast.makeText(StationListActivity.this,"sWIPE1",Toast.LENGTH_LONG).show();
                    LayoutInflater inflater=(LayoutInflater)getApplicationContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                    View viewNew=inflater.inflate(R.layout.view_flow_common_page, null);
                    view=viewNew;
                } 
                else {
                    ConstantValues.STATION_NAME=((TextView)view.findViewById(R.id.textView)).getText().toString();
                    LayoutInflater inflater=(LayoutInflater)getApplicationContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                    View viewNew=inflater.inflate(R.layout.view_flow_common_page, null);
                    //startActivity(new Intent(getApplicationContext(), StationSelectionActivity.class));
                }
            }
    });
    list.setOnItemLongClickListener(new OnItemLongClickListener() {
        public boolean onItemLongClick(AdapterView<?> parent, View view,int position, long id) {
            if (listSwipeDetector.swipeDetected()){
                Toast.makeText(StationListActivity.this,"sWIPE3",Toast.LENGTH_LONG).show();
            } else {
                Toast.makeText(StationListActivity.this,"sWIPE4",Toast.LENGTH_LONG).show();
            }
            return false;
        }
    });

【问题讨论】:

    标签: android listview custom-adapter


    【解决方案1】:

    onItemClickListener内,可以实现onItemClick (AdapterView&lt;?&gt; parent, View view, int position, long id)。如果您检索到view,您可以在用户单击该项目时对其进行所需的更改。

    对于刷卡,您可以修改适配器的getItem() 函数并添加GestureListenerthis code 之类的东西。然后你可以监听滑动并采取相应的行动。

    【讨论】:

    • 很抱歉,我无法创建视图。我知道列表视图滑动,但不知道如何更改列表视图的选定行。
    • 您要在哪里更改选定的行?在getItem() 里面?还是在onItemClick()里面?
    • 我不知道 getItem() 所以我尝试使用 onItemClick()。
    • onItemClick() 的第二个参数view 是该项所在的行。然后,您可以将其转换为任何视图,并使用findViewById() 访问该行中的其他视图。
    猜你喜欢
    • 2015-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多