2016-08-24 109 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意味着什麼,我必須使用 –

相關問題