بروز خطا
[message]
اشتراک در سوال
رای ها
[dataList]
مرتبط کردن listview به viewpager
چه جوری میشه با کلیک برروی لیست ویو سطر انتخاب شده بر روی ویوپیجر نشان داده شود و با کشیدن پیجر به چپ و راست آیتم های قبلی و بعدی لیست ویو نشان داده شود؟؟؟؟
اکتیویتی شروع برنامه که شامل لیست ویو می باشد.
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 سال پیش)
برای این سوال پاسخی وجود ندارد.
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .