gpt4 book ai didi

Android 自定义 ListView ,setOnItemSelectedListener 不工作

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:20:55 26 4
gpt4 key购买 nike

我刚刚开始 Android 开发,我正在努力获得一个带有复选框的自定义 ListView 。我创建了一个扩展 Activity 的基类,创建了一个适配器并覆盖了 getView() 方法以将复选框添加到 ListView 。我假设我需要这样做,因为我需要与 Obj C 中的 didSelectRowIndexAtPath 等效的东西来更新我的模型。如果还有其他方法,请告诉我!

现在在我的基类中,我有以下代码 -

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout);
setContentView(R.layout.facilityscreen);

/* Static Data source */
facilityModel = new FacilityDataModel[2];

facilityModel[0] = new FacilityDataModel();
facilityModel[1] = new FacilityDataModel();


facilityModel[0].setFacilityName("Test 1");
facilityModel[0].setFacilityID("Facid0001");
facilityModel[0].setChecked(false);


facilityModel[1].setFacilityName("Test 2");
facilityModel[1].setFacilityID("Facid0002");
facilityModel[1].setChecked(true);


facilityListView = (ListView) findViewById(R.id.facilityListView);

FacilityScreenAdapter adapter = new FacilityScreenAdapter(this, facilityModel);

facilityListView.setAdapter(adapter);

myPatBtn = (Button) findViewById(R.id.myPatBtn);
myPatBtn.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
int i=0;
i++;
}});

facilityListView.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {

@Override
public void onItemSelected(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
int i=0;
i++;

}

@Override
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
});

}

我现在的问题是根本没有调用 setOnItemSelectedListener。现在已经为此苦苦挣扎了几个小时,我不明白为什么它根本不会被调用。

非常感谢任何帮助!

谢谢,
泰迦。

最佳答案

我知道这是一个过时的答案,但我会写它以防其他有同样“问题”的人碰到这个页面:

上述问题的解决方案不是问题,只是一个误解,是 ListView.onItemSelected() 事件被触发,在:

1) 通过模拟器导航 - 交叉 handle 或2) 就我的 HTC-Hero 而言,白色小滚球上的滚动 Action 。

您不必将您的 Activity 显式扩展到 ListActivity。

这是我从中检索电话号码的小代码一个 TextView 控件,位于 ListView 项内。当用户触摸列表项或使用

滚动列表时

下面事件的小滚球启动并调用 MakeACall() 方法:

myList.setOnItemClickListener(new OnItemClickListener() 
{
public void onItemClick(AdapterView<?> parent, View view, int position, long i)
{
TextView myPhone = (TextView)view.findViewById(R.id.txtphone);
MakeACall(myPhone.getText().toString());
}
});

myList.setOnItemSelectedListener(new OnItemSelectedListener()
{
public void onItemSelected(AdapterView<?> parent, View view, int position, long i)
{
TextView myPhone = (TextView)view.findViewById(R.id.txtphone);
MakeACall(myPhone.getText().toString());
}

@Override
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub

}
});

希望对您有所帮助...:)

关于Android 自定义 ListView ,setOnItemSelectedListener 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3630468/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com