【问题标题】:list view is not clickable列表视图不可点击
【发布时间】:2013-04-01 05:33:14
【问题描述】:

我是安卓新手。我正在显示具有单击事件的列表视图。 当我单击任何行时,它会转到 ext 活动。 当我按下返回按钮时,我遇到了问题,列表视图不再可点击。 我在标签组下有这个逻辑。谁能解释一下怎么做?

public class MyCustomAdapter extends BaseAdapter {
    String[] data_text;
    int[] data_image;
    int k;
    MyCustomAdapter(String[] text, int[] image) {

        data_text = data_text;
        data_image = data_image;    
    }

    MyCustomAdapter(ArrayList text, ArrayList image) {

        data_text = new String[text.size()];
        data_image = new int[image.size()];

        for (int i = 0; i < text.size(); i++) {
            System.out.println("In adapter2");
            data_text[i] =  text.get(i).toString();
            data_image[i] = (Integer) image.get(i);
            Log.e("",data_image[i]+"");
        }
    }
      public int getCount()
      {
       return data_text.length;
      }
      public String getItem(int position)
      {
       return null;
      }
      public long getItemId(int position)
      {
       return position;
      }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        // TODO Auto-generated method stub
          LayoutInflater inflater = getLayoutInflater();
           View row;
           row = inflater.inflate(R.layout.list_item_review, parent, false);               
           TextView textview = (TextView) row.findViewById(R.id.TextView01);
           ImageView imageview = (ImageView) row.findViewById(R.id.ImageView01);
           textview.setText(data_text[position]);
           imageview.setImageResource(data_image[position]);
           return (row);
    }

    @Override
    public void notifyDataSetChanged() {
        // TODO Auto-generated method stub
        super.notifyDataSetChanged();
    }
} 

这是点击代码

listview.setOnItemClickListener(new OnItemClickListener() {
                    @Override
                    public void onItemClick(AdapterView<?> arg0, View v1,int position, long id) {
                        Intent i = new Intent(ReviewTab.this, ReviewDetail.class);

                        View view = ReviewTabGroup.group.getLocalActivityManager().startActivity("com.MyITAssessment.ApplicationCodes.ReviewDetail",i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)).getDecorView();
                        ReviewTabGroup.group.replaceView(view);
                    }
                });

【问题讨论】:

  • 您是否在后台编写过任何代码?并发布您的列表视图点击事件。
  • 确保你的 listview 像 listview..setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView> arg0, View arg1, int arg2, long arg3) { // TODO Auto -生成的方法存根 //这里是你的代码。} });
  • @Hiren Dabhi 请检查更新的代码
  • @RobinHood 请检查编辑后的代码
  • 将日志放入列表点击事件并检查其是否触发?

标签: android android-layout android-intent android-widget


【解决方案1】:

您的行视图似乎冻结导致问题,做一件事打开您的row xml(R.layout.list_item_review)

并在 xml 行的main layout 中添加以下行代码。

android:descendantFocusability="blocksDescendants"

【讨论】:

  • 嘿,它还没有工作,我已将 android:descendantFocusability="blocksDescendants" 放在主 layout.list_item_review 中
  • 是的,它正在冻结,我必须在点击事件发生之前滚动列表视图。
  • 评论listview点击事件代码并放入简单的Toast或日志并检查它是否工作?
  • 我已将日志放入其中,除非按下后退按钮后我不会滚动列表视图,否则日志不会执行。请让我摆脱它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-01
相关资源
最近更新 更多