alertdialog中 获取上一层(parent)中的textview

餅餅 2011-05-10 10:45:25

<LinearLayout android:id="@+id/concontainer"
android:orientation="horizontal"
android:layout_width="100dip"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:gravity="center_horizontal"
>
<ImageView android:id="@+id/comment"
android:src="@drawable/comment"
android:scaleType="center"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="5dip"
/>

<TextView android:id="@+id/commentnum"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="17dip"
android:layout_marginLeft="2dip"
android:layout_marginTop="5dip"
/>
</LinearLayout>



public View.OnClickListener comment_click = new View.OnClickListener(){
@Override
public void onClick(View v)
{
AlertDialog.Builder builder;
AlertDialog alertDialog;
LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View layout = inflater.inflate(R.layout.custom_dialog, null);
builder = new AlertDialog.Builder(mContext);
builder.setView(layout);

ViewGroup cvp = (ViewGroup)v.getParent();
final TextView goodsnum = (TextView)cvp.findViewById(R.id.commentnum);
……
builder.setPositiveButton(R.string.commit_ok, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
…………
try
{
JSONObject jsobj = new JSONObject(strResult);
JSONObject obj = jsobj.getJSONObject("data");

goodsnum.setText(obj.getString("commentsnum") + SCConstants.COMMENTSNUM);
}
catch (JSONException e)
{
e.printStackTrace();
}
Toast.makeText(mContext, value,
Toast.LENGTH_SHORT).show();
}
});

builder.setNegativeButton(R.string.comment_cancl,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
dialog.cancel();
}
});
alertDialog = builder.create();
alertDialog.show();
}
};


上面的xml中的代码是listview中的一个item片段

点击comment 弹出alertdialog 确定后 需要改变commentnum的值

ViewGroup cvp = (ViewGroup)v.getParent();
final TextView goodsnum = (TextView)cvp.findViewById(R.id.commentnum);
看起来是没有获取到commentnum对象

求解

...全文
375 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
傲慢的上校 2011-05-14
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 ameyume 的回复:]

Java code
int visStart = listMusic.getFirstVisiblePosition();
int visEnd = listMusic.getLastVisiblePosition();
TextView tvTitle, tvSinger, tvTextt;
……
[/Quote]这个吧
ameyume 2011-05-12
  • 打赏
  • 举报
回复
int visStart = listMusic.getFirstVisiblePosition();
int visEnd = listMusic.getLastVisiblePosition();
TextView tvTitle, tvSinger, tvTextt;
int index = MusicService.mPlayPosition - visStart;
if ( index >= 0 && index <= visEnd - visStart) {
tvTitle = (TextView)(listMusic.getChildAt(index).findViewById(R.id.ItemTitle));
tvTitle.setTextColor(libraryMusicTitleFontColor);
tvSinger = (TextView)(listMusic.getChildAt(index).findViewById(R.id.ItemSinger));
tvSinger.setTextColor(libraryArtistFontColor);
tvTextt = (TextView)(listMusic.getChildAt(index).findViewById(R.id.ItemTime));
tvTextt.setTextColor(libraryArtistFontColor);
}

这是我用到的listView中的点击item时取得item中textView的代码,根据ListView中可见区域的第一项和当前点击的item在整个list中的实际索引值,计算出显示点击项目的相对索引,就可以取得你要的TextView了。
lizhengjun2010 2011-05-11
  • 打赏
  • 举报
回复
ListView 应该用OnItemOnClickListener()这样可以获取每个View的值

楼主用的ListView 的 OnClickListener() 这样确定不了你点击的那个View 吧

餅餅 2011-05-11
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 lizhengjun2010 的回复:]
ListView 应该用OnItemOnClickListener()这样可以获取每个View的值

楼主用的ListView 的 OnClickListener() 这样确定不了你点击的那个View 吧
[/Quote]

OnItemClickListener 是点击每个item的事件

另外listview 里面是根据position 确定哪个item里面的元素的操作被触发的

80,355

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧