Java 在n'下创建分隔符;定制设计的第四排
我使用自定义行设计来制作适配器并将其放入listView中。然而,由于我想在listView中有不同的类别,我决定在第n行下设置一个分隔符。我尝试了一个if语句,但没有得到我想要的。 以下是我的主要活动: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);
@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>。