2 samuwoo samuwoo 于 2015.05.28 13:10 提问

onItemClick de访问级别问题

public class ChooseAreaActivity extends Activity {
public static final int LEVEL_PROVINCE = 0;
public static final int LEVEL_CITY = 1;
public static final int LEVEL_COUNTY = 2;
......
private List provinceList;
private List cityList;
private List countyList;
private Province selectedProvince;
private City selectedCity;
/**
* 当前选中的级别
*/
private int currentLevel;

@Override
protected void onCreate(Bundle saveInstanceState) {
    super.onCreate(saveInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    setContentView(R.layout.choose_area);
    .......
    listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> arg0, View view, int index, long arg3) {
            if (currentLevel == LEVEL_PROVINCE) {
                selectedProvince = provinceList.get(index);
                queryCities();
            } else if (currentLevel == LEVEL_CITY) {
                selectedCity = cityList.get(index);
                queryCounties();
            }
        }
    });
    queryProvinces();//加载省级数据
}

以上代码我是按照书上敲的,其中有一点我不理解:类中的3个常量 LEVEL_PROVINCE,LEVEL_CITY,LEVEL_COUNTY,如何在点击一个ListVIew的item的时候知道我是在点击省级别、市级别或是县级别的item?_在onItemClick方法中有判断语句if(currentlevel ==..),这个currentlevel是哪里确定的?

3个回答

danielinbiti
danielinbiti   Ds   Rxr 2015.05.28 13:22

从这里无法得知currentLevel 是怎么给的值。没有看到赋值的地方,你可以找找currentLevel 哪赋的值。

danielinbiti
danielinbiti 回复samuwoo: 绑定关系都用datalist,在queryProvinces,queryCitys等查询省市县的查询里面绑定的adapter
2 年多之前 回复
danielinbiti
danielinbiti 回复samuwoo: 你运行一下就知道界面运行方式了,每个listview是整个刷成省或市或区,然后按返回键逐步返回到上级
2 年多之前 回复
danielinbiti
danielinbiti 回复samuwoo: 在queryProvinces,queryCitys里面,看逻辑应该是默认先加载省,点任意一个省,加载省下面的市,刷新整个listview为市,点市加载市下面的区,刷新整个listview.按返回键在从区-市-省
2 年多之前 回复
samuwoo
samuwoo 我自己也把书上的代码看了好几遍,也没找到赋值的地方。还有就是常量LEVEL_PROVINCE等,也没见在何处跟Province级别的ListView item绑定。满郁闷
2 年多之前 回复
samuwoo
samuwoo 您好,这是完整的代码:https://github.com/tony-green/coolweather/blob/master/src/com/coolweather/app/activity/ChooseAreaActivity.java
2 年多之前 回复
jz726
jz726   2015.05.28 13:24

很可能在Adapter中为每个Item设置的Tag为level

a1020028989
a1020028989   2015.05.29 14:25

在onCreate的时候加载省级数据queryProvinces(); 这个方法中 currentLevel= LEVEL_PROVINCE;每次点击都会加载下一级别的数据 ,同时对currentLevel 赋值

Csdn user default icon
上传中...
上传图片
插入图片