以下に示すように、1 つの画面で View Pager を使用するプロジェクトを開発しています。
しかし、そこには、表示されたページに従って選択された年がリストされている上部のレイアウトがあります。ビューページャーをスワイプすると、表示されたページのインデックスに従って、年も次の年に変更されます。対応するビューページャーページが表示される年の TextViews に Click 操作を実装する必要があります。しかし、それはどのように実装されますか?別のビューのクリックを呼び出すときに、ビュー ページャーにページの特定のインデックスを表示する方法を意味します。1998 年を選択すると、1998 年に対応するページが表示されます。コードを書きましたが、うまくいきません。
コード:
for (int i = 0; i < (Overview_Years.size()); i++) {
tvYear[i] = new TextView(Overview_New.this);
img_Pagination[i] = new ImageView(Overview_New.this);
//yearValue = Overview_Years.get(i).toString();
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT);
// params.weight = 0.5f;
params.gravity = Gravity.CENTER_VERTICAL;
params.setMargins(40, 4, 0, 0);
// tvYear[i].setLayoutParams(new
// LayoutParams(LayoutParams.WRAP_CONTENT,
// LayoutParams.WRAP_CONTENT));
tvYear[i].setLayoutParams(params);
// tvYear[i].setText(Overview_Years.get(i).toString());
tvYear[i].setText(Overview_Years.get(i).toString());
tvYear[i].setTag(Overview_Years.get(i).toString());
tvYear[i].setGravity(Gravity.CENTER);
tvYear[i].setTypeface(null, Typeface.BOLD);
tvYear[i].setTextColor(Color.WHITE);
tvYear[i].setId(i);
tvYear[i].setPadding(2, 0, 1, 17);
//tvYear[i].setTag(Overview_Years.get(i-1).toString());
final TextView tv = tvYear[i];
**tvYear[i].setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
for(int i=0;i<((ViewGroup)yearHorizontalScrollView.getChildAt(0)).getChildCount();i++){
if(((TextView)arg0)== ((ViewGroup)yearHorizontalScrollView.getChildAt(0)).getChildAt(i)){
currentposition = i;
}
}**
onYearSelect(((TextView)arg0).getText().toString());
}
});
layout_Years.addView(tvYear[i]);
LinearLayout.LayoutParams paramsPagination = new LinearLayout.LayoutParams(
LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT);
// params.weight = 0.5f;
paramsPagination.gravity = Gravity.CENTER_VERTICAL;
paramsPagination.setMargins(5, 2, 0, 0);
img_Pagination[i].setLayoutParams(paramsPagination);
/*if (i == 0) {
img_Pagination[0]
.setBackgroundResource(R.drawable.pagination_selected);
} else {*/
img_Pagination[i]
.setBackgroundResource(R.drawable.pagination_unselected);
//}
img_Pagination[i].setId(i);
layout_Pagination.addView(img_Pagination[i]);
tvYear[0].setBackgroundResource(R.drawable.selector_x);
/*tvYear[0]
.setBackgroundResource(R.drawable.selector_x);*/
//tv_Overview_AllYears.setBackgroundResource(R.drawable.selector_bg_big_new);
count=-1;
}
事前にthnx。