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
图像视图
和文本视图
组成,
我想当我点击一个speceficImageView
时,一些代码会被执行,我应该把这些代码放在哪里呢
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();
}
}
});