您的位置:首页 > 其它

点击listviewitem,自定义对地址进行排序

2016-06-17 10:15 429 查看
点击下面的item ,上面会动态添加地址,进行动态排序

未点击之前



点击之后(点击下面的item),上面的蓝色的会相对应的对地址进行排序



上面的动态添加的布局

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/container"
android:layout_width="80dp"
android:layout_height="200dp"
tools:context="com.aeckj.distribution.MainActivity"
android:orientation="horizontal"
android:layout_margin="10dp"
android:padding="10dp"

>
<TextView
android:id="@+id/tv_address"
android:layout_width="50dp"
android:layout_height="200dp"
android:padding="5dp"
android:gravity="center"
android:textSize="15sp"
android:background="#6CCDFA"
/>

<RelativeLayout
android:id="@+id/rl_right"
android:layout_width="20dp"
android:layout_height="200dp"
android:orientation="vertical"
>
<ImageView
android:id="@+id/iv_close"
android:layout_width="20dp"
android:layout_height="30dp"
android:layout_gravity="top"
android:background="@drawable/close"
/>
<ImageView
android:id="@+id/iv_right"
android:layout_width="20dp"
android:layout_height="30dp"
android:background="@drawable/enter"
android:layout_centerVertical="true"
/>

</RelativeLayout>

</LinearLayout>

下面listview的布局
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
tools:context="com.aeckj.distribution.MainActivity"
android:orientation="horizontal"

>
<TextView
android:id="@+id/tv_address"
android:textSize="16sp"
android:layout_width="match_parent"
android:layout_height="40dp"
android:text="北京市东城区东四十条南新仓商务大厦906AAAAAA"
android:gravity="center"
/>

</LinearLayout>

主页的布局

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:weightSum="5">

<RelativeLayout
android:layout_width="match_parent"
android:layout_height="@dimen/activity_main_llTop"
android:background="@color/color_bgTopbar">
<TextView
android:id="@+id/text_orderNtTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="路径规划"
android:textColor="@color/color_top_tex"
android:textSize="@dimen/activity_layoutTop_textSize"/>
</RelativeLayout>

<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="2"
android:orientation="vertical"
android:background="@drawable/account_tv_bg"
>
<TextView android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="我的规划:"/>

<!-- <ScrollView
android:id="@+id/sv_myPlan"
android:layout_width="match_parent"
android:layout_height="wrap_content"> -->

<LinearLayout
android:id="@+id/ll_parent"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
>

</LinearLayout>

<!-- </ScrollView> -->

</LinearLayout>

<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_marginTop="20dp"
android:layout_weight="2">

<ListView
android:id="@+id/lv_panning"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@drawable/account_tv_bg"
></ListView>

</LinearLayout>

<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:gravity="center"
android:layout_weight="1">

<TextView
android:layout_width="100dp"
android:layout_height="50dp"
android:text="开始导航"
android:textSize="16sp"
android:textColor="#000000"
android:layout_gravity="center"
android:gravity="center"
android:background="#D9D9D9"
/>
</LinearLayout>

</LinearLayout>

执行的代码:

package com.aeckj.distribution;

import java.util.ArrayList;
import java.util.List;
import com.aeckj.distribution.utils.LogUtil;

import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.graphics.Color;
import android.os.Bundle;
import android.support.v4.widget.DrawerLayout.LayoutParams;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.view.ViewParent;
import android.view.Window;
import android.view.WindowManager;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.ScrollView;
import android.widget.TextView;

/**
* 创建日期:2016年6月15日 下午6:13:34
* 项目名称:com.aeckj.Distribution
* @author Jiang shan shan
* @version 1.0
* @since JDK 1.6.0_21
* 文件名称: PathPlanninActivity.java
* 类说明:全是for
*/
public class PathPlanninActivity extends Activity{
private ListView lv_panning;
private ScrollView sv_myPlan;
private List<String> tempList;
private MyAdapter adapter;
private LinearLayout ll_parent;

private List<String> acceptList = new ArrayList<String>();//用于接收的集合

private LinearLayout.LayoutParams ll_params;
private LinearLayout ll_layout_outer;

private ImageView iv_close;

private String commStr ;

/* (non-Javadoc)
* @see android.app.Activity#onCreate(android.os.Bundle)
*/
@SuppressLint("NewApi")
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_path_planning);
lv_panning = (ListView) findViewById(R.id.lv_panning);

ll_parent = (LinearLayout) findViewById(R.id.ll_parent);
tempList = new ArrayList<String>();

ll_params=new android.widget.LinearLayout.LayoutParams//params 是横着外面的那层布局
(LayoutParams.MATCH_PARENT,LayoutParams.WRAP_CONTENT);

ll_layout_outer = new LinearLayout(PathPlanninActivity.this);

ll_layout_outer.setLayoutDirection(LinearLayout.HORIZONTAL);

tempList.add("北京市海淀区上地东路辉煌国际大厦606");
tempList.add("北京市朝阳区酒仙桥");
tempList.add("北京市海淀区上地十街烽火大厦531");
tempList.add("北京市东城区东四十条港澳中心223");

adapter = new MyAdapter(PathPlanninActivity.this);
lv_panning.setAdapter(adapter);

lv_panning.setOnItemClickListener(new OnItemClickListener(){

@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
// TODO Auto-generated method stub

acceptList.add(tempList.get(position));

tempList.remove(position);
Log.e("tempList---size", "tempList:"+tempList.size());
adapter.notifyDataSetChanged();

ll_layout_outer.removeAllViews();
ll_parent.removeAllViews();

for( int i=0;i<acceptList.size();i++){
LayoutInflater layoutInflater = PathPlanninActivity.this.getLayoutInflater();
LinearLayout inflateView = (LinearLayout) layoutInflater.inflate(R.layout.item_path_plan, null);

final TextView tv_address = (TextView) inflateView.findViewById(R.id.tv_address);
iv_close = (ImageView)inflateView.findViewById(R.id.iv_close);

tv_address.setText(acceptList.get(i));

inflateView.setOnClickListener(new OnClickListener(){

@Override
public void onClick(View view) {

// TODO Auto-generated method stub

commStr = tv_address.getText().toString();
Log.e("commStr", "commStr=====commStr===="+commStr);

ll_layout_outer.removeView(view);
for(int j= 0;j<acceptList.size();j++){

if(acceptList.get(j).equals(commStr)){
acceptList.remove(j);
}
}
tempList.add(commStr);
Log.e("acceptList", "acceptList=====jss====size:"+acceptList.size());
adapter.notifyDataSetChanged();

}});

ll_layout_outer.addView(inflateView);
}
ll_parent.addView(ll_layout_outer);

Log.e("acceptList=====size", "acceptList=====jss====acceptList:"+acceptList.size());

}});

}

class MyAdapter extends BaseAdapter{
private Context context;
private ViewHolder holder;
public MyAdapter(Context context){
this.context=context;
}

@Override
public int getCount() {
// TODO Auto-generated method stub
return tempList.size();
}

@Override
public Object getItem(int arg0) {
// TODO Auto-generated method stub
return 0;
}

@Override
public long getItemId(int arg0) {
// TODO Auto-generated method stub
return 0;
}

@Override
public View getView(int position, View converview, ViewGroup arg2) {
// TODO Auto-generated method stub
if(converview==null){
converview=View.inflate(context,R.layout.item_path_plan2 , null);
holder = new ViewHolder();

holder.tv_address = (TextView) converview.findViewById(R.id.tv_address);
holder.tv_address.setTextColor(Color.BLACK);
converview.setTag(holder);
}else{
holder=(ViewHolder) converview.getTag();

}
holder.tv_address.setText(tempList.get(position));
return converview;
/////

}

class ViewHolder{
private TextView tv_address;
}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息