SathishKumar
SathishKumar

Reputation: 1644

How to change layout of only selected listview row with in onitemclicklistener of listview

I need to create ListView like Samsung Contact List. And I need to show custom layout for that row while that row is swiped. And also need to show contact detail at background of that row. Please give me some ideas or reference.

Thank You.

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;
        }
    });

Upvotes: 2

Views: 2072

Answers (1)

Oleg Vaskevich
Oleg Vaskevich

Reputation: 12672

Within onItemClickListener, you can implement onItemClick (AdapterView<?> parent, View view, int position, long id). If you retrieve the view, you can make the changes you need for it when the user clicks on that item.

For swiping, you can modify your adapter's getItem() function and add a GestureListener or something like this code. Then you can listen for swipes and act accordingly.

Upvotes: 2

Related Questions