Java 如果我没有';我没有getter和setter方法
这是我的适配器类Java 如果我没有';我没有getter和setter方法,java,android,listview,Java,Android,Listview,这是我的适配器类 public class MenuAdapter extends HeaderListAdapter implements View.OnClickListener { private View v; private int selPos = 3; Typeface font = Typeface.createFromAsset(getActivity() .getAsse
public class MenuAdapter extends HeaderListAdapter implements
View.OnClickListener {
private View v;
private int selPos = 3;
Typeface font = Typeface.createFromAsset(getActivity()
.getAssets(), "OpenSans-Semibold.ttf");
Typeface font1 = Typeface.createFromAsset(getActivity()
.getAssets(), "OpenSans-Bold_0.ttf");
// ======
@Override
public View getHeaderView(int pos, View cv, ViewGroup vg, Object o) {
View v = cv;
if (cv == null)
v = LayoutInflater.from(vg.getContext()).inflate(
R.layout.menu_header_row, vg, false);
TextView textView = (TextView) v.findViewById(R.id.textView1);
textView.setText(String.valueOf(o));
textView.setTextColor(Color.LTGRAY);
textView.setTypeface(font1);
textView.setTextSize(19);
return v;
}
// ===
@Override
public View getItemView(int pos, View cv, ViewGroup vg, Object o) {
final Object n = o;
v = cv;
if (cv == null)
v = LayoutInflater.from(vg.getContext()).inflate(
R.layout.menu_item_row, vg, false);
String[] separated = String.valueOf(o).split("-");
// Log.v("adapter value", String.valueOf(o));
TextView textView = (TextView) v.findViewById(R.id.textView1);
textView.setText(separated[0]);
textView.setTextColor(Color.WHITE);
textView.setTypeface(font);
textView.setTextSize(19);
ImageView imageView = (ImageView) v.findViewById(R.id.imageView1);
imageView.setScaleType(ScaleType.FIT_XY);
View vi = mDrawerList.getChildAt(pos - mDrawerList.getFirstVisiblePosition());
Log.v("log", vi+"");
if (pos == 1) {
imageView.setBackgroundResource(R.drawable.ic_launcher);
}
else {
imageView.setImageResource(Integer.parseInt(separated[1]));
}
v.setOnTouchListener(touchListener);
v.setOnClickListener(viewListener);
v.setTag(pos);
if (pos == selPos && (pos != 1 && pos != 16)) {
v.setBackgroundColor(Color.parseColor("#2980b9"));
} else {
v.setBackgroundColor(Color.TRANSPARENT);
}
return v;
}
// ===
@Override
public View getCustView(int pos, View cv, ViewGroup vg, Object o) {
// TODO Auto-generated method stub
final Object n = o;
v = cv;
if (cv == null)
v = LayoutInflater.from(vg.getContext()).inflate(
R.layout.menu_custom_row, vg, false);
EditText editText = (EditText) v.findViewById(R.id.editText1);
editText.setHint("Search");
editText.setTypeface(font);
editText.setPadding(10, 0, 0, 0);
return v;
}
// ===
@Override
public void onClick(View v) {
}
private OnTouchListener touchListener= new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
v.setBackgroundColor(Color.parseColor("#2980b9"));
return true;
}
};
private OnClickListener viewListener = new OnClickListener() {
@Override
public void onClick(View v) { // TODO Auto-generated method
//ba.notifyDataSetChanged();
selPos = Integer.parseInt(v.getTag().toString());
// displayView(selPos);
}
};
}
在GetItemView中,在listview的第一个位置,需要更新其映像。
但这张图片设置为多个位置,而我在偷窥。
请检查if(pos=1){//do change}处的代码。您可以使用
pos
从列表中获取所需位置
在适配器中:
if (pos == 1)
Object item = getItem(pos);
也许这个有帮助。试试看
public static void ensureVisible(ListView listView, int pos)
{
if (listView == null)
{
return;
}
if(pos < 0 || pos >= listView.getCount())
{
return;
}
int first = listView.getFirstVisiblePosition();
int last = listView.getLastVisiblePosition();
if (pos < first)
{
listView.setSelection(pos);
return;
}
if (pos >= last)
{
listView.setSelection(1 + pos - (last - first));
return;
}
}
publicstaticvoid可修改(ListView-ListView,int-pos)
{
如果(listView==null)
{
返回;
}
如果(pos<0 | | pos>=listView.getCount())
{
返回;
}
int first=listView.getFirstVisiblePosition();
int last=listView.getLastVisiblePosition();
如果(位置<第一位)
{
listView.setSelection(pos);
返回;
}
如果(位置>=最后一个)
{
setSelection(1+pos-(last-first));
返回;
}
}
你说的“获得第一名”是什么意思?您想检索视图对象还是数据对象?我试图在列表的第一个位置添加一些修改,我使用if(pos==1){//Do chanes}。但变化反映在多个立场上。当我在搜索时。好的,你想从列表中获取第一个对象还是从列表中获取第一个可见对象?如果你想获得此网站上的帮助,请花一些时间解释你的问题。有三个答案适合你,但没有一个能真正帮助你。为了理解问题是什么,我需要问几个问题。请尊重那些花时间帮助你的人。好的,有什么问题吗?欢迎来到stack overflow。请你回答的时候再详细一点。解释您的解决方案实现了什么。
public static void ensureVisible(ListView listView, int pos)
{
if (listView == null)
{
return;
}
if(pos < 0 || pos >= listView.getCount())
{
return;
}
int first = listView.getFirstVisiblePosition();
int last = listView.getLastVisiblePosition();
if (pos < first)
{
listView.setSelection(pos);
return;
}
if (pos >= last)
{
listView.setSelection(1 + pos - (last - first));
return;
}
}