viewpagerのonclicklistsnerの問題で質問を解決しましたが、XMLレイアウトファイルのすべての要素に依存していることに気付きました。
私はそのチュートリアルでViewPagerを実装しました:tutsplus
XMLで定義したすべてのオブジェクトが正しくインスタンス化される(findViewByIdなどの後のDebugginモードではnullではない)という問題がありますが、それらを参照することはできません。ここでそれをよりよく理解するために私のPagerAdapter:
class MyPagerAdapter extends PagerAdapter {
public int getCount() {
return 3;
}
public Object instantiateItem(View collection, int position) {
LayoutInflater inflater = (LayoutInflater) collection.getContext()
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
int resId = 0;
switch (position) {
case 0:
resId = R.layout.settings_view;
break;
case 1:
resId = R.layout.push_view;
break;
case 2:
resId = R.layout.listen_view;
break;
}
View view = inflater.inflate(resId, null);
((ViewPager) collection).addView(view, 0);
return view;
}
@Override
public void destroyItem(View arg0, int arg1, Object arg2) {
((ViewPager) arg0).removeView((View) arg2);
}
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
return arg0 == ((View) arg1);
}
@Override
public Parcelable saveState() {
return null;
}
public int getItemPosition(Object object) {
return POSITION_NONE;
}
}
ここに、アダプターの実装とサンプルコードがあります。
ViewPager myPager = (ViewPager)findViewById(R.id.pager);
adapter = new MyPagerAdapter();
myPager.setAdapter(adapter);
myPager.setCurrentItem(0);
スピナースピナー=(スピナー)listenView.findViewById(R.id.Dashboard_chooser); ボタンプッシュ=(ボタン)pushview.findViewById(R.id.pushbutton);
ArrayAdapter spinnerArrayAdapter = new ArrayAdapter(getApplicationContext(),android.R.layout.simple_spinner_item, si);
spinner.setAdapter(spinnerArrayAdapter);
push.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
//do something
});
ボタンもスピナーも何もしていません。どちらも正しくインスタンス化されていますが、ボタンをクリックすることも、SpinnerにSpinnerItemの配列を入力することもできません。
Debuモードで調べたところ、両方がインスタンス化され、SpinnerItemArray(si)がその値を取得するなどです。
ちなみに、ViewPagerを実装する前はすべてが機能していました。また、XMLでandroid:onClickを設定し、コードでメソッドを定義するときにボタンも機能しますが、Spinnerでは機能しないため、 instanceiateItemメソッドまたは同様のものに問題があります。
ここの誰かが問題を知っていますか?誰かが助けてくれたらクールすぎるでしょう。あなたのフロー