Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/206.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在n'下创建分隔符;定制设计的第四排_Java_Android_Android 5.0 Lollipop - Fatal编程技术网

Java 在n'下创建分隔符;定制设计的第四排

Java 在n'下创建分隔符;定制设计的第四排,java,android,android-5.0-lollipop,Java,Android,Android 5.0 Lollipop,我使用自定义行设计来制作适配器并将其放入listView中。然而,由于我想在listView中有不同的类别,我决定在第n行下设置一个分隔符。我尝试了一个if语句,但没有得到我想要的。 以下是我的主要活动: @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);

我使用自定义行设计来制作适配器并将其放入listView中。然而,由于我想在listView中有不同的类别,我决定在第n行下设置一个分隔符。我尝试了一个if语句,但没有得到我想要的。 以下是我的主要活动:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    listview = (ListView) findViewById(R.id.drawerListChannels);
    myAdapter = new MyAdapter(this);
    listview.setAdapter(myAdapter);
    if(myAdapter.getCount()==3){ // Here is the problem
        ColorDrawable sage = new ColorDrawable(this.getResources().getColor(R.color.sage));
        listview.setDivider(sage);
        listview.setDividerHeight(2);
    }
    listview.setOnItemClickListener(this);

    drawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
    drawerListener = new ActionBarDrawerToggle(this, drawerLayout, null, R.string.drawer_open, R.string.drawer_close) {
        @Override
        public void onDrawerOpened(View drawerView) {
            super.onDrawerOpened(drawerView);
            setTitle("Channels");
            invalidateOptionsMenu();
        }

        @Override
        public void onDrawerClosed(View drawerView) {
            super.onDrawerClosed(drawerView);
            setTitle("PTIVI");
            invalidateOptionsMenu();
        }
    };
    drawerLayout.setDrawerListener(drawerListener);
    getSupportActionBar().setHomeButtonEnabled(true);
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);
}
以下是我的myAdapter类:

package com.example.ptivi.ptivi;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;

public class MyAdapter extends BaseAdapter {
String[] Channels;
int[] CountryImages = {R.drawable.saudi, R.drawable.ku,    R.drawable.iran, R.drawable.turkey};
// Overwrite stuff
private Context context;

public MyAdapter(Context context) {
    this.context = context;
    Channels = context.getResources().getStringArray(R.array.channels);
}

@Override
public int getCount() {
    return Channels.length;
}

@Override
public Object getItem(int position) {
    return Channels[position];
}

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

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    View row = null;
    if (convertView == null) {
        LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        row = inflater.inflate(R.layout.custom_row, parent, false);
    } else {
        row = convertView;
    }

    TextView titleView = (TextView) row.findViewById(R.id.textView);
    ImageView titleImageView = (ImageView) row.findViewById(R.id.imageView);
    titleView.setText(Channels[position]);
    titleImageView.setImageResource(CountryImages[position]);


    return row;
}

}
两个列表视图是否可以在一起


谢谢

我认为应该在MyAdapter类中的getView方法内部实现分隔器。只需检查位置,然后提供自定义布局。

如果要按类别分组,请考虑使用<代码> ExpDabeleListVIEW/COD>。