2016-08-24 71 views
-3

我是新的android应用程序开发..我想创建新的活动按钮点击自定义列表视图..(即)我想添加Click事件列表视图项目中使用的按钮。我如何在List Item中的按钮上点击Click事件。我正尝试使用intent和bundles来传递两个不同活动的数据。但如果我使用意图,那么它不适合我工作..任何人请帮助我解决这个问题..如何使用意图和束自定义列表视图

+0

首先添加一些代码,你如何尝试添加onClick事件到项目 – mayosk

+0

你有两个问题,对于列表视图使用http://stackoverflow.com/questions/38894234/how-can-i-set-an-活动对按钮单击变量,这是只分配通过吨/ 38895051#38895051 – Ramit

+0

这里是代码︰https://jsfiddle.net/mawy0tLa/ –

回答

0

由于您没有发布任何代码,我会尽我所能根据您的问题给出一个答案。您需要ListView项目中的按钮点击事件。只需在ListViewgetView()方法内使用findViewById()获取该ID,并在该按钮上添加onClickListener。在此onClick事件中启动新的活动。

编辑: 根据您的意见更改线路:

intent.putExtra("data",tvmername.getText().toString()); 
       startActivity(intent); 

这样:

intent.putExtra("data",holder.tvmername.getText().toString()); 
       startActivity(intent); 

代码ArrayAdapter:

public class MovieAdapter extends ArrayAdapter { 
    private List<CarrotModel> carrotModelList; 
    private int resource; 

    private LayoutInflater inflater; 

    public MovieAdapter(Context context, int resource, List<CarrotModel> objects) { 
     super(context, resource, objects); 
     carrotModelList = objects; 
     this.resource = resource; 
     inflater = (LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE); 
    } 

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

     ViewHolder holder=null; 
     if (convertView == null) { 
      holder=new ViewHolder(); 
      convertView = inflater.inflate(resource, null); 

      holder.ivIcon = (ImageView) convertView.findViewById(R.id.ivIcon); 

      holder.tvDiscount = (TextView) convertView.findViewById(R.id.tvDiscount); 
      holder.tvmername = (TextView) convertView.findViewById(R.id.tvMerName); 
      holder.tvDealDesc = (TextView) convertView.findViewById(R.id.tvDealDesc); 
      holder.tvOfftoDis = (TextView) convertView.findViewById(R.id.tvOftoDis); 
      holder.tvmeradd = (TextView) convertView.findViewById(R.id.tvmeradd); 
      convertView.setTag(holder); 
     } 
     else { 

      holder = (ViewHolder) convertView.getTag(); 
     } 


     final ProgressBar progressBar; 


     progressBar=(ProgressBar) convertView.findViewById(R.id.progressBar); 


     ImageLoader.getInstance().displayImage(carrotModelList.get(position).getImageURL(), holder.ivIcon, new ImageLoadingListener() { 
      @Override 
      public void onLoadingStarted(String imageUri, View view) { 
       progressBar.setVisibility(View.VISIBLE); 
      } 

      @Override 
      public void onLoadingFailed(String imageUri, View view, FailReason failReason) { 

       progressBar.setVisibility(View.GONE); 
      } 

      @Override 
      public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) { 
       progressBar.setVisibility(View.GONE); 
      } 

      @Override 
      public void onLoadingCancelled(String imageUri, View view) { 
       progressBar.setVisibility(View.GONE); 
      } 
     }); 
     holder.tvDiscount.setText(carrotModelList.get(position).getDiscount() + "% OFF"); 
     holder.tvmername.setText(carrotModelList.get(position).getMerchantName()); 
     holder.tvDealDesc.setText(carrotModelList.get(position).getDealDescription()); 
     holder.tvOfftoDis.setText(carrotModelList.get(position).getOffersToDisplay()); 
     holder.tvmeradd.setText(carrotModelList.get(position).getMerchantAddress()); 

     Button Button1= (Button) convertView.findViewById(R.id.button); 

     Button1.setOnClickListener(new View.OnClickListener() 
     { 
      @Override 
      public void onClick(View v) 
      { 
       Intent intent=new Intent(getApplicationContext(), SecondActivity.class); 
       intent.putExtra("data",holder.tvmername.getText().toString()); 
       startActivity(intent); 
      } 

     }); 


     return convertView; 
    } 

    class ViewHolder{ 
     private ImageView ivIcon; 
     private TextView tvDiscount; 
     private TextView tvmername; 
     private TextView tvDealDesc; 
     private TextView tvOfftoDis; 
     private TextView tvmeradd; 

    } 


} 
+0

我试过这种方法,但仍然它不适合我..这里是代码︰https://jsfiddle.net/mawy0tLa/ –

+0

是这段代码运行正常或者你得到任何错误(除了按钮点击)? –

+0

代码正常运行..当按钮被点击时,它显示错误 –

0

只是做更改下方。

Button1.setOnClickListener(new View.OnClickListener() 
      { 
       @Override 
       public void onClick(View v) 
       { 
        Intent intent=new Intent(getApplicationContext(), SecondActivity.class); 
        intent.putExtra("data",holder.tvmername.getText().toString()); 
        startActivity(intent); 
       } 

      }); 

如果还有NullPointerException,则发送资源文件。

+0

如果它是文本意味着我可以使用像这样..intent.putExtra(“data”,holder.tvmername.getText()。toString());而不是文本,如果我想通过ImageView意味着什么,我必须使用 –