cod*_*der 36 android listitem buttonclick android-listview android-button
这是我的listview点击事件:
lv1.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> a, View v, int position, long id) {
Object o = lv1.getItemAtPosition(position);
ItemDetails obj_itemDetails = (ItemDetails)o;
Toast.makeText(ListViewImagesActivity.this, "You have chosen : " + " " + obj_itemDetails.getName(), Toast.LENGTH_LONG).show();
}
});
Run Code Online (Sandbox Code Playgroud)
这是我的按钮点击事件:
btnNxt = (Button) findViewById(R.id.btnNext);
btnNxt.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
//Here I need to get that position
});
Run Code Online (Sandbox Code Playgroud)
现在我需要获得点击的listview项目的位置..我已经全局声明了postion但总是给我位置1.
谁能说我怎么得到这个位置?
Pas*_*llo 72
你执行这个吗?
btnNxt = (Button) findViewById(R.id.btnNext);
btnNxt.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
//Here I need to get that position
});
Run Code Online (Sandbox Code Playgroud)
在getView方法中?如果是这样的话很容易
btnNxt = (Button) findViewById(R.id.btnNext);
btnNxt.setTag(position);
btnNxt.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
int position=(Integer)arg0.getTag();
});
Run Code Online (Sandbox Code Playgroud)
Kar*_*oly 32
我知道我的答案有点迟了,但是这个怎么样:
private OnClickListener myButtonClickListener = new OnClickListener() {
@Override
public void onClick(View v) {
View parentRow = (View) v.getParent();
ListView listView = (ListView) parentRow.getParent();
final int position = listView.getPositionForView(parentRow);
}
};
Run Code Online (Sandbox Code Playgroud)
在这种情况下,您不需要设置标签等.
如果您使用ViewHolder,请确保使用这样的setTag().
public View getView(int position, View convertView, ViewGroup parent) {
final ViewHolder holder;
if (convertView == null) {
holder = new ViewHolder();
convertView = mLayoutInflater.inflate(R.layout.custom_row, parent, false);
holder.btnNxt = (Button) convertView.findViewById(R.id.btnNext);
holder.btnNxt.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
int position=(Integer)arg0.getTag();
});
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
holder.btnNxt.setTag(position); // <---- setTag() here
return convertView;
}
private class ViewHolder {
Button btnNxt;
}
}
Run Code Online (Sandbox Code Playgroud)
如果在setOnClickListener()行之前设置了标签(),则在滚动列表视图时会出现问题.
| 归档时间: |
|
| 查看次数: |
82861 次 |
| 最近记录: |