آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

مرتبط کردن listview به viewpager

M.GA  11 سال پیش  11 سال پیش
0 0

چه جوری میشه با کلیک برروی لیست ویو سطر انتخاب شده بر روی ویوپیجر نشان داده شود و با کشیدن پیجر به چپ و راست آیتم های قبلی و بعدی لیست ویو نشان داده شود؟؟؟؟

اکتیویتی شروع برنامه که شامل لیست ویو می باشد.

 public class ActivityMain extends Activity {

public ArrayAdapter adapter;


@Override
protected void onResume() {
G.currentActivity = this;
super.onResume();
}


@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

ListView lstContent = (ListView) findViewById(R.id.lstContent);

adapter = new ListViewAdapter(G.notes);

lstContent.setAdapter(adapter);

for (int i = 0; i <= 10; i++)
{
StructNote note = new StructNote();
note.title = "Title " + i;
G.notes.add(note);
}

adapter.notifyDataSetChanged();
}
}
----------------ListView-------------------------------------
public class ListViewAdapter extends ArrayAdapter<StructNote> {

public ListViewAdapter(ArrayList<StructNote> array) {
super(G.context, R.layout.adapter_notes, array);
}


private static class ViewHolder {

public TextView txtTitle;
public ViewGroup layoutRoot;


public ViewHolder(View view) {
txtTitle = (TextView) view.findViewById(R.id.txtTitle);
layoutRoot = (ViewGroup) view.findViewById(R.id.layout_root);
}


public void fill(final ArrayAdapter<StructNote> adapter, final StructNote item, final int position) {
txtTitle.setText(item.title);

layoutRoot.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View arg0) {
Intent intent = new Intent(G.currentActivity, SecondActivity.class);
intent.putExtra("POSITION", position);
G.currentActivity.startActivity(intent);
}
});

}
}


@Override
public View getView(int position, View convertView, ViewGroup parent) {

ViewHolder holder;
StructNote item = getItem(position);
if (convertView == null)
{
convertView = G.inflater.inflate(R.layout.adapter_notes, parent, false);
holder = new ViewHolder(convertView);
convertView.setTag(holder);
}
else
{
holder = (ViewHolder) convertView.getTag();
}
holder.fill(this, item, position);
return convertView;

}

}
-----------ViewPager-----------------------------
public class ViewPagerAdapter extends PagerAdapter {

Context context;
String[] words;
LayoutInflater inflater;


public ViewPagerAdapter(Context context, String[] word) {
this.context = context;
this.words = word;
}


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


@Override
public boolean isViewFromObject(View view, Object object) {
return view == ((RelativeLayout) object);
}


@Override
public Object instantiateItem(ViewGroup container, int position) {

inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View itemView = inflater.inflate(R.layout.viewpager_item, container, false);
TextView txt_word = (TextView) itemView.findViewById(R.id.rank);

txt_word.setText(words[position]);
((ViewPager) container).addView(itemView);
return itemView;

}


@Override
public void destroyItem(ViewGroup container, int position, Object object) {
((ViewPager) container).removeView((RelativeLayout) object);

}
}
--------------------------------------------------------------------
public class SecondActivity extends Activity {

ViewPager viewPager;
PagerAdapter adapter;


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.viewpager_main);

Bundle extras = getIntent().getExtras();
int position = 0;
if (extras != null)
{
position = extras.getInt("POSITION");
}

final StructNote note = G.notes.get(position);
Toast.makeText(G.context, note.title, 3000).show();

viewPager = (ViewPager) findViewById(R.id.pager);


adapter = new ViewPagerAdapter(SecondActivity.this, items);
viewPager.setAdapter(adapter);

}
}
0 0
با متد setCurrentItem میتونی ViewPager رو ببری به محل (position) مورد نظرت (11 سال پیش)
 برای این سوال پاسخی وجود ندارد.

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .