1

listviewアップル、バナナ、オレンジのアイテムが含まれています... 2番目の画面activity で、アップルの特定のアイテムをクリックすると、詳細画面に移動します

ここでは、-> Appleをクリックして、出力を次のように表示する必要があります。ページをスワイプしてからバナナをスワイプすると、次のスワイプはオレンジになります。

アップル->バナナ->オレンジ

バナナをクリックすると、バナナのように表示され、アップルを左にスワイプし、右にスワイプするとオレンジになります。

したがってlistview、2番目の画面で(バナナ)をクリックしたアイテムは、詳細画面に表示される必要があります。前のリストアイテムを左にスワイプすると、リストの次のアイテムを右にスワイプします。

バナナ->左スワイプの場合Apple->右スワイプの場合オレンジ

オレンジをクリックすると、オレンジのように表示され、バナナを左にスワイプします。次に左にスワイプすると、オレンジになります。バナナ

オレンジ->左スワイプの場合バナナ--->次の左スワイプの場合->アップル

しかし、クリックされた各アイテムのすべてのケースについて、Apple->Banana->Orangeのような出力が得られていlistviewます...。

public class SecondScreen extends Activity {
ListView listView;
LayoutInflater lay;
    MyApplication app; 
protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState); 

        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.second);

app = ((MyApplication) getApplicationContext());

    listView = (ListView) findViewById(R.id.yearlistss);
        listView.setAdapter(new MyAdapter(SecondScreen.this,app.totalvalue));
    listView.setOnItemClickListener(new OnItemClickListener() {

        public void onItemClick(AdapterView<?> arg0, View arg1, final int arg2,
                long arg3) {        


            Intent detailIntent =new Intent(SecondScreen.this, Details.class);          

            startActivity(detailIntent);            
        }
    });

    }


public class MyAdapter extends BaseAdapter {

            Context context = null;

            private ArrayList<String> temperList1;


            public MyAdapter(SecondScreen secondScreen, ArrayList<String> totalvalue) {

                this.temperList1 = totalvalue;

            }

            public int getCount() {
                // TODO Auto-generated method stub
                return temperList.size();


            }

            public Object getItem(int position) {
                // TODO Auto-generated method stub
                return temperList;
            }

            public long getItemId(int position) {
                // TODO Auto-generated method stub
                return position;
            }

            public View getView(int position, View convertView, ViewGroup parent) {
                // TODO Auto-generated method stub

                View layout = null;


                TextView totalval = null;


                if (convertView == null) {

                    lay = LayoutInflater.from(getApplicationContext());
                    layout = lay.inflate(R.layout.secondlist, null);


                    totalval = (TextView) layout.findViewById(R.id.total);                  


                } else {
                    layout = convertView;
                }                       

                 totalval.setText("" + temperList1.get(position));

                return layout;
    }

        }





}









public class MyApplication extends Application {

    ArrayList<String> totalvalue  = new ArrayList<String>();

}







public class Details extends FragmentActivity{

    MyApplication app;
    ViewPager pager;
  MyFragmentPagerAdapter pagerAdapter;     
 public static int position ;

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);

    requestWindowFeature(Window.FEATURE_NO_TITLE);
    setContentView(R.layout.detail);    
    app = ((MyApplication) getApplicationContext());
    pager = (ViewPager) findViewById(R.id.pager);

    FragmentManager fm = getSupportFragmentManager();      
    pagerAdapter = new MyFragmentPagerAdapter(fm,app.totalvalue);   
      pager.setAdapter(pagerAdapter);

  }



public static class MyFragmentPagerAdapter extends FragmentPagerAdapter {


    private final  ArrayList<String> temperList;



    public MyFragmentPagerAdapter(FragmentManager fm, ArrayList<String> totalvalue ) {
         super(fm);
         this.temperList = totalvalue;
    }


    public Fragment getItem(int position) {

        return ThingFragment.newInstance((temperList.get(position)));
    }

    @Override
    public int getCount(){

    return temperList.size();

    }

     private static class ThingFragment extends Fragment {       
            private String name1;
         static ThingFragment newInstance(String string ) {

                ThingFragment f = new ThingFragment();
                Bundle args = new Bundle();

        args.putString("name",string );
                f.setArguments(args);

                return f;
            }



            @Override
            public void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                name1 = getArguments().getString("name");
            }

            @Override
            public View onCreateView(LayoutInflater inflater, ViewGroup container,                       Bundle savedInstanceState) {

                View v = inflater.inflate(R.layout.myfragment_layout, container, false);
                TextView t = (TextView)v.findViewById(R.id.prodcutt);
                t.setText(""+ name1);
                return v;
        }

    }

}


}
4

1 に答える 1

0

果物のOnItemClickListenerリストでは、選択した果物の位置を渡す必要があります。Intentこれにより、詳細アクティビティで、どの果物がクリックされたかを知ることができます。たとえば、次のようになります。

Intent detailIntent =new Intent(SecondScreen.this, Details.class);          
detailIntent.putExtra("fruitPosition", arg2);
startActivity(detailIntent); 

次に、詳細アクティビティでその番号を取得し、ViewPagerそれに応じて配置します。

setContentView(R.layout.detail);    
app = ((MyApplication) getApplicationContext());
pager = (ViewPager) findViewById(R.id.pager);
FragmentManager fm = getSupportFragmentManager();      
pagerAdapter = new MyFragmentPagerAdapter(fm,app.totalvalue);   
pager.setAdapter(pagerAdapter);
Intent startIntent = getIntent();
int fruitPosition = startIntent.getIntExtra("fruitPosition", 0);
pager.setCurrentItem(fruitPosition);
于 2012-11-24T10:29:56.800 に答える