自定义ListView上的按钮

问题描述:

我有一个JSON自定义列表视图与一些文本和按钮。我如何做到这一点,当我点击从列表视图中的一个项目的按钮,我去我从JSON传递的URL(在这种情况下字符串“url_info”)?这是适配器的代码。自定义ListView上的按钮

编辑:我尝试了我的按钮的建议代码,但它不起作用。

error compiling

public class ListViewEventosAdapter extends BaseAdapter { 

    // Declare Variables 
    Context context; 
    LayoutInflater inflater; 
    ArrayList<HashMap<String, String>> data; 
    HashMap<String, String> resultp = new HashMap<String, String>(); 

    public ListViewEventosAdapter(Context context, 
            ArrayList<HashMap<String, String>> arraylist) { 
     this.context = context; 
     data = arraylist; 
    } 

    @Override 
    public int getCount() { 
     return data.size(); 
    } 

    @Override 
    public Object getItem(int position) { 
     return null; 
    } 

    @Override 
    public long getItemId(int position) { 
     return 0; 
    } 

    public View getView(final int position, View convertView, ViewGroup parent) { 
     // Declare Variables 
     TextView titulo; 
     TextView dias ; 
     TextView descricao; 
     TextView url_info; 
     Button btn_maisinfo; 

     inflater = (LayoutInflater) context 
       .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 

     View itemView = inflater.inflate(R.layout.listview_eventositem, parent, false); 
     // Get the position 
     resultp = data.get(position); 

     // Locate the TextViews in listview_item.xml 
     titulo = (TextView) itemView.findViewById(R.id.titulo); 
     dias = (TextView) itemView.findViewById(R.id.dias); 
     descricao = (TextView) itemView.findViewById(R.id.descricao); 
     url_info = (TextView) itemView.findViewById(R.id.url_info); 

     btn_maisinfo = (Button)itemView.findViewById(R.id.btn_maisinfo); 

     btn_maisinfo.setOnClickListener (new View.OnClickListener(){ 
      Uri uri = Uri.parse(url_info(position)); 
      Intent intent = new Intent(Intent.ACTION_VIEW, uri); 
      startActivity(intent); 
     } 

     // Capture position and set results to the TextViews 
     titulo.setText(resultp.get(EventosSearchActivity.TITULO)); 
     dias.setText(resultp.get(EventosSearchActivity.DIAS)); 
     descricao.setText(resultp.get(EventosSearchActivity.DESCRICAO)); 
     url_info.setText(resultp.get(EventosSearchActivity.URL_INFO)); 

     return itemView; 
    } 
} 

在listviewsingleitem.xml我当然有按钮它,在正确的相对视图布局。

<Button 
    android:id="@+id/btn_maisinfo" 
    android:layout_width="wrap_content" 
    android:layout_height="30dp" 
    android:layout_alignParentRight="true" 
    android:layout_alignParentBottom="true" 
    android:layout_marginBottom="10dp" 
    android:layout_marginRight="10dp" 
    android:paddingLeft="5dp" 
    android:paddingRight="5dp" 
    android:background="#3BABDC" 
    android:textColor="#FFFFFF" 
    android:textStyle="bold" 
    android:textSize="12sp" 
    android:text="MAIS INFORMAÇÃO" /> 
+0

PLZ刊登上述按钮 – 2014-11-05 16:33:35

在getView方法:

Button xyz = (Button)itemView.findViewById(R.id.abc) 
xyz.setOnClickListener (new View.OnClickListener(){ 
    Uri uri = Uri.parse(url_info(position)); 
    Intent intent = new Intent(Intent.ACTION_VIEW, uri); 
    startActivity(intent); 
} 

通过从getView方法的位置到onClickListener方法

+0

我在onclick做什么东西究竟到XML代码通过?? – Acejakk 2014-11-05 16:47:20

+0

我不知道如何去某些网址。更新你的问题与任何简单的例子,通过点击一个按钮去url,我会展示如何实现,在你的情况下 – 2014-11-05 16:51:38

+0

Uri uri = Uri.parse(“http://www.google.com”); Intent intent = new Intent(Intent.ACTION_VIEW,uri); startActivity(intent); from - > http://stackoverflow.com/questions/4930228/open-a-url-on-click-of-ok-button-in-android 这应该是打开网址点击! – Acejakk 2014-11-05 16:52:44

我已经创建了一个示例代码,请用下面的代码检查。它的工作原理,

@覆盖 公共查看getView(INT位置,查看convertView,ViewGroup以及母公司){

 ViewHolder holder; 
     if (convertView == null) { 
      convertView = LayoutInflater.from(getApplicationContext()).inflate(
        R.layout.appointment_list_content, parent, false); 
      holder = new ViewHolder(convertView); 
      convertView.setTag(holder); 

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

     holder.mAppointmentStatus.setText(context.getResources().getString(R.string.visited)); 
      holder.mAppointmentStatus.setOnClickListener(new OnClickListener() { 

       @Override 
       public void onClick(View arg0) { 
        // TODO Auto-generated method stub 

        // Use Intent to move 
       } 
      }); 

     } 





     return convertView; 
    } 

    @Override 
    public int getCount() { 
     // TODO Auto-generated method stub 
     return 100; 
    } 

    @Override 
    public Object getItem(int arg0) { 
     // TODO Auto-generated method stub 
     return null; 
    } 

    @Override 
    public long getItemId(int arg0) { 
     // TODO Auto-generated method stub 
     return 0; 
    } 

    class ViewHolder { 

     Button mAppointmentStatus; 



     public ViewHolder(View convertView) { 
       mAppointmentStatus = (Button) convertView.findViewById(R.id.app_list_status); 


     } 
    } 
+0

我想知道我的情况究竟是什么我放在我的onclick,所以我去我从JSON传递的url_info .. – Acejakk 2014-11-05 16:59:17