Android 在ListView项上';孩子的点击

Android 在ListView项上';孩子的点击,android,listview,children,onitemclicklistener,Android,Listview,Children,Onitemclicklistener,我有一个列表视图,其中每个项目都由一些图像视图和文本视图组成, 我想当我点击一个speceficImageView时,一些代码会被执行,我应该把这些代码放在哪里呢 public class EspaceClientUplodedProducts extends Activity implements OnItemClickListener{ List<Produit> lesProduits= new ArrayList<Produit>(); ListView lvL

我有一个列表视图,其中每个项目都由一些
图像视图
文本视图
组成, 我想当我点击一个specefic
ImageView
时,一些代码会被执行,我应该把这些代码放在哪里呢

public class EspaceClientUplodedProducts extends Activity implements OnItemClickListener{

List<Produit> lesProduits= new ArrayList<Produit>();
ListView lvListe;
ProductsDataSource produitSource;

@Override
protected void onCreate(Bundle savedInstanceState) 
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.espaceclientuploads);

    produitSource=new ProductsDataSource(this);
    produitSource.open();
    lesProduits=produitSource.getAllUploads();

    lvListe= (ListView)findViewById(R.id.UploadListView);
    UploadedAdapter adapter = new UploadedAdapter(this, lesProduits);
    lvListe.setAdapter(adapter);
    lvListe.setOnItemClickListener(this);
}



@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) 
{

}


@Override
protected void onPause() {
    produitSource.close();
    super.onPause();
}
你把这个密码放进去了

@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) 
{

}
@覆盖
public void onItemClick(AdapterView父对象、视图、整型位置、长id)
{
}
或者你可以写类似的东西

listview.setOnItemClickListener(new AdapterView.OnItemClickListener() {

      @Override
      public void onItemClick(AdapterView<?> parent, final View view,
          int position, long id) {
        final String item = (String) parent.getItemAtPosition(position);
        view.animate().setDuration(2000).alpha(0)
            .withEndAction(new Runnable() {
              @Override
              public void run() {
                list.remove(item);
                adapter.notifyDataSetChanged();
                view.setAlpha(1);
              }
            });
      }

    });
listview.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父视图、最终视图、,
内部位置,长id){
最终字符串项=(字符串)父项.getItemAtPosition(位置);
view.animate().setDuration(2000).alpha(0)
.withEndAction(新的可运行(){
@凌驾
公开募捐{
列表。删除(项目);
adapter.notifyDataSetChanged();
视图。setAlpha(1);
}
});
}
});

getView()中的
uploadedapter
中,您必须创建
图像视图的对象


只需将
onClickListener
设置为该
ImageViews
的对象,并根据每个
ImageView
的id处理
onClick
中的单击事件

@Override
public View getView(final int position, View convertView, final ViewGroup parent) {
    View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.xml, parent, false);
    // setup view bindings
    TextView textView = view.findViewById(R.id.textView);
    ImageView imageView = view.findViewById(R.id.imageView);

    setClickListener(textView, position, parent);
    setClickListener(imageView, position, parent);
}

private void setClickListener(View view, final int position, final ViewGroup parent){
    view.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            // this part is important, it lets ListView handle the clicks
            ((ListView) parent).performItemClick(v, position, 0);
        }
    });
}
现在在
活动
片段

ListView listView = findViewById(R.id.listView);
listView.setAdapter(adapter);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
        long viewId = view.getId();
        if (viewId == R.id.textView) {
            Toast.makeText(Activity.this, "TextView Clicked", Toast.LENGTH_SHORT).show();
        } else if (viewId == R.id.imageView) {
            Toast.makeText(Activity.this, "ImageView Clicked", Toast.LENGTH_SHORT).show();
        }
    }
});
ListView-ListView=findviewbyd(R.id.ListView);
setAdapter(适配器);
setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
long viewId=view.getId();
if(viewId==R.id.textView){
Toast.makeText(Activity.this,“TextView已点击”,Toast.LENGTH_SHORT.show();
}else if(viewId==R.id.imageView){
Toast.makeText(Activity.this,“单击图像视图”,Toast.LENGTH_SHORT.show();
}
}
});

检查这个答案:当你得到你的对象时,你可以检查位置或其他东西,然后做你想做的事情。我从“Md Abdul gafur”那里得到了相同的答案,但这不是我要找的,我有一个代码,我想在我点击该项目的specefic组件时执行它,就像我单击名为“删除”的ImageView时,该项目应该被删除。抱歉,我想单击我的ListView项目的specefic组件。你可以尝试第二种方法吗?是的,我已经在get view方法中为我的ImageView创建了一个对象。我不能理解你答案的第二部分,如果你能写一些代码,那会很有帮助。
ListView listView = findViewById(R.id.listView);
listView.setAdapter(adapter);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
        long viewId = view.getId();
        if (viewId == R.id.textView) {
            Toast.makeText(Activity.this, "TextView Clicked", Toast.LENGTH_SHORT).show();
        } else if (viewId == R.id.imageView) {
            Toast.makeText(Activity.this, "ImageView Clicked", Toast.LENGTH_SHORT).show();
        }
    }
});