如何在android中的listview中设置特定的行项选项(可见,不可见)

时间:2015-06-23 12:37:18

标签: android android-listview

我的英语技能很弱。

描述>

这是列表视图。

ㅡㅡㅡㅡㅡㅡㅡㅡ
ㅣㅡㅡㅡㅡㅣㅢlt< - 这是按钮,我初始设置不可见
ㅣㅡㅡㅡㅡㅡㅣㅢ
ㅣㅡㅡㅡㅡㅡㅣㅢ
ㅣㅡㅡㅡㅡㅡㅣㅢ
ㅣㅡㅡㅡㅡ//////< - 我想制作可见按钮
ㅣㅡㅡㅡㅡㅡ//////< - 具体位置

我制作自定义ListView

ListView行包含文字Button

Button在xml文件中设置了不可见选项。

然后,我想设置可见的特定行按钮。

我试过了但失败了

在为ArrayList制作ListView之后,标记匹配位置,如此

    for(i=0; i<arraylist.size(); i++){        
        int t41=Integer.parseInt(arraylist.get(i).getm());
        if(month == t41){
            confirm_replay[i]=true;
            temp55=i;
        } 
     }

我可以设置textValue。通过adapter.getItem(int position)。 但我不知道如何控制特定按钮 也尝试添加按钮到适配器。失败.. 也在谷歌搜索问题,但我的英雄技能不好。失败

添加我的代码。

  

main.xml中

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
    android:paddingTop="10dp"
    android:text="match day(weekend)"
    android:textSize="28dp"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" />
<LinearLayout
    android:background="#2d000000"
    android:layout_width="match_parent"
    android:layout_height="3dp">
</LinearLayout>
<ListView
    android:id="@+id/listView"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

  

list.xml

  <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">
    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
        <TextView
            android:id="@+id/m"
            android:textSize="20dp"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
        <TextView
            android:paddingLeft="10dp"
            android:id="@+id/d"
            android:textSize="20dp"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
        <TextView
            android:id="@+id/yoil"
            android:textSize="20dp"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
        <TextView
            android:id="@+id/time"
            android:textSize="15dp"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
    </LinearLayout>
   <LinearLayout
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:orientation="horizontal">
       <TextView
           android:id="@+id/vsTeam"
           android:textSize="15dp"
           android:layout_width="wrap_content"
           android:layout_height="wrap_content" />
       <TextView
           android:id="@+id/league"
           android:paddingLeft="10dp"
           android:textSize="15dp"
           android:layout_width="wrap_content"
           android:layout_height="wrap_content" />
       <TextView
           android:id="@+id/공갈"
           android:layout_weight="1"
           android:layout_width="0dp"
           android:layout_height="wrap_content" />
       <Button
           android:id="@+id/button_youtube"
           android:text="다시보기"
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:visibility="invisible"/>
   </LinearLayout>


</LinearLayout>



<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">
    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
        <TextView
            android:id="@+id/m"
            android:textSize="20dp"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
        <TextView
            android:paddingLeft="10dp"
            android:id="@+id/d"
            android:textSize="20dp"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
        <TextView
            android:id="@+id/yoil"
            android:textSize="20dp"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
        <TextView
            android:id="@+id/time"
            android:textSize="15dp"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
    </LinearLayout>
   <LinearLayout
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:orientation="horizontal">
       <TextView
           android:id="@+id/vsTeam"
           android:textSize="15dp"
           android:layout_width="wrap_content"
           android:layout_height="wrap_content" />
       <TextView
           android:id="@+id/league"
           android:paddingLeft="10dp"
           android:textSize="15dp"
           android:layout_width="wrap_content"
           android:layout_height="wrap_content" />
       <TextView
           android:id="@+id/공갈"
           android:layout_weight="1"
           android:layout_width="0dp"
           android:layout_height="wrap_content" />
       <Button
           android:id="@+id/button_youtube"
           android:text="다시보기"
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:visibility="invisible"/>
   </LinearLayout>


</LinearLayout>
</b>
  

适配器

    class MlistViewAdapter extends BaseAdapter {
    // Declare Variables
    Context mContext;
    LayoutInflater inflater;
    private List<MatchInfomation> matchinformationlist = null;
    private ArrayList<MatchInfomation> arraylist;

    public MlistViewAdapter(Context context,
                           List<MatchInfomation> matchinformationlist) {
        mContext = context;
        this.matchinformationlist = matchinformationlist;
        inflater = LayoutInflater.from(mContext);
        this.arraylist = new ArrayList<MatchInfomation>();
        this.arraylist.addAll(matchinformationlist);
    }

    public class ViewHolder {
        TextView m;
        TextView d;
        TextView yoil;
        TextView vsTeam;
        TextView time;
        TextView league;
    }

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

    @Override
    public MatchInfomation getItem(int position) {
        return matchinformationlist.get(position);
    }

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



    public View getView(final int position, View view, ViewGroup parent) {
        final ViewHolder holder;

        if (view == null) {
            holder = new ViewHolder();
            view = inflater.inflate(R.layout.activity_match_list, null);


            button_youtube.setOnClickListener(new View.OnClickListener() { 
                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub
                    Intent intent = new Intent(Intent.ACTION_SEARCH);
                    intent.setPackage("com.google.android.youtube");
                    intent.putExtra("query", "Android");
                    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                    mContext.startActivity(intent);
                }
            });
            // Locate the TextViews in listview_item.xml
            holder.m = (TextView) view.findViewById(R.id.m);
            holder.d = (TextView) view.findViewById(R.id.d);
            holder.yoil = (TextView) view.findViewById(R.id.yoil);
            holder.vsTeam = (TextView) view.findViewById(R.id.vsTeam);
            holder.time = (TextView) view.findViewById(R.id.time);
            holder.league = (TextView) view.findViewById(R.id.league);
            view.setTag(holder);


        } else {
            holder = (ViewHolder) view.getTag();
        }
        // Set the results into TextViews
        holder.m.setText(matchinformationlist.get(position).getm());
        holder.d.setText(matchinformationlist.get(position).getd());
        holder.yoil.setText(matchinformationlist.get(position).getyoil());
        holder.vsTeam.setText(matchinformationlist.get(position).getvsTeam());
        holder.time.setText(matchinformationlist.get(position).gettime());
        holder.league.setText(matchinformationlist.get(position).getleague());

        return view;
    }
}

3 个答案:

答案 0 :(得分:1)

如果您要调整特定行,可以使用positiongetView()方法中的adapter参数。例如;

if(position==55){
    holder.m.setVisibility(View.GONE);
}

答案 1 :(得分:0)

在将值设置到视图之前,请根据需要检查条件: -

  

如果条件为真,则将视图设置为可见   否则设置您的视图不可见

if(true){
button.setVisibility(View.VISIBLE);
}else{
 button.setVisibility(View.GONE);   
}

答案 2 :(得分:0)

我不确定我理解你的问题。 如果我是对的,那么你应该让你的按钮隐藏在特定的行中。为此,请在getView方法

的末尾添加特定行
yourButton.setVisibility(View.INVISIBLE)

如果要隐藏整行,最好的方法可能是将适配器更改为只覆盖带有内容的行。