【问题标题】:ListView button click toast textview textListView 按钮单击 toast textview 文本
【发布时间】:2017-02-23 16:49:29
【问题描述】:

我有一个带有按钮的列表视图,我正在尝试烤一个文本,当用户单击按钮时,该文本将是带有 id mobile 的文本视图的文本 的列表项。 我的视图类如下,当我点击按钮时应用程序关闭并重新启动。

    public View getView(int position, View convertView, ViewGroup parent) {

    View v = convertView;

    if (v == null) {
        holder = new ViewHolder();
        v = vi.inflate(Resource, null);
        holder.imageview = (ImageView) v.findViewById(R.id.photo);
        holder.tvName = (TextView) v.findViewById(R.id.doctor);
        holder.tvMobile = (TextView) v.findViewById(R.id.mobile);

        Button btnCall = (Button) v.findViewById(R.id.btnCall);
        btnCall.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                String message= ((TextView) view.findViewById(R.id.mobile)).getText().toString();
                Toast.makeText(view.getContext(), message, Toast.LENGTH_SHORT).show();
            }
        });

        v.setTag(holder);
    } else {
        holder = (ViewHolder) v.getTag();
    }

    holder.imageview.setImageResource(R.drawable.noimage);
    new DownloadImageTask(holder.imageview).execute(doctorList.get(position).getImage());
    holder.tvName.setText(doctorList.get(position).getName());
    holder.tvMobile.setText(doctorList.get(position).getMobile());
    return v;
}

【问题讨论】:

  • 您能发布您的崩溃日志吗?
  • 尝试用holder.tvMobile.getText().toString()替换((TextView) view.findViewById(R.id.mobile)).getText().toString()
  • 是的!请分享错误日志
  • 它有效,但是当按钮单击时,它总是显示最后一个列表项移动,而不是当前按钮之一。 @Prera​​kSola

标签: android listview android-button


【解决方案1】:

你做错了:-

而不是:-

       @Override
       public void onClick(View view) {
                String message= ((TextView) view.findViewById(R.id.mobile)).getText().toString();
                Toast.makeText(view.getContext(), message, Toast.LENGTH_SHORT).show();
       }

你需要做的

@Override
        public void onClick(View view) {
            String message= ((TextView) v.findViewById(R.id.mobile).getText().toString();
            Toast.makeText(view.getContext(), message, Toast.LENGTH_SHORT).show();
        }

因为您的移动文本视图不是单击按钮的子项,并且您正试图从错误的按钮中获取他的引用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多