类型活动中的方法startactivity(intent,bundle)不适用于参数(int,intent)

时间:2015-06-26 04:02:13

标签: android eclipse android-intent android-framelayout

我想将活动从列表视图中的主要活动链接到使用意图的其他活动。

当我使用intent链接它并将结果指向mainactivity中具有id(R.id.main)的帧布局时,它就会出现问题。

任何人都可以帮助我?

问题StartActivity(intent, R.id.main

  String [] menus=getResources().getStringArray(R.array.menus);

  //currently selected river
  data=menus[pos];
  if (data.equals("One")) {
        Intent intent = new Intent(MainActivity.this, Home.class);
        startActivity(intent,R.id.main);
  }
  else if (data.equals("Two")) {
        Intent in = new Intent(MainActivity.this, Page1.class);
        startActivity(in,R.id.main);
  }                                             
  else if(data.equals("Three")){
        Intent inte = new Intent(MainActivity.this, Page2.class);
        startActivity(inte,R.id.main);                 
  }

3 个答案:

答案 0 :(得分:0)

startActivity()方法将第二个参数作为Bundle。但是你传递一个int值。 从此

更改您的代码
Intent intent = new Intent(MainActivity.this, Home.class);
startActivity(intent,R.id.main);

进入这个

 Intent in = new Intent(MainActivity.this, Page1.class);
 startActivity(in);

答案 1 :(得分:0)

 ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, getResources().getStringArray(R.array.menus));

 final DrawerLayout drawer = (DrawerLayout)findViewById(R.id.drawer_layout);
 final ListView navList = (ListView) findViewById(R.id.drawer);

 navList.setAdapter(adapter);

 ImageView burger=(ImageView) findViewById(R.id.btnback) ;
 burger.setOnClickListener(new View.OnClickListener () {

        @Override
        public void onClick (View v) {
            drawer.openDrawer(navList);

        }   

        });



 navList.setOnItemClickListener(new OnItemClickListener(){
     @Override
     public void onItemClick(AdapterView<?> parent, View view, final int pos,long id){

         String [] menus=getResources().getStringArray(R.array.menus);

            //currently selected river
            data=menus[pos];
                     if (data.equals("One")) {
                        Intent intent = new Intent(MainActivity.this, Home.class);
                        startActivity(intent,R.id.main);
                    }
                    else if (data.equals("Two")) {
                        Intent in = new Intent(MainActivity.this, Page1.class);
                        startActivity(in);
                    }


                    else if(data.equals("Three")){
                        Intent inte = new Intent(MainActivity.this, Page2.class);
                        startActivity(inte);

答案 2 :(得分:0)

尝试如下,

        Intent intent = new Intent(MainActivity.this, SecondActivity.class);
        Bundle mBundle = new Bundle();
        mBundle.putInt("key", R.id.main);
        intent.putExtras(mBundle);
        startActivity(intent);

因此,您的计划将在更改

之后展示

String [] menus = getResources()。getStringArray(R.array.menus);

    // currently selected river
    data = menus[pos];
    if (data.equals("One")) {

        Intent intent = new Intent(MainActivity.this, Home.class);
        Bundle mBundle = new Bundle();
        mBundle.putInt("key", R.id.main);
        intent.putExtras(mBundle);
        startActivity(intent);
    } else if (data.equals("Two")) {
        Intent intent = new Intent(MainActivity.this, Page1.class);
        Bundle mBundle = new Bundle();
        mBundle.putInt("key", R.id.main);
        intent.putExtras(mBundle);
        startActivity(intent);
    }

    else if (data.equals("Three")) {
        Intent intent = new Intent(MainActivity.this, Page2.class);
        Bundle mBundle = new Bundle();
        mBundle.putInt("key", R.id.main);
        intent.putExtras(mBundle);
        startActivity(intent);

    }

获取目标活动的价值

myVariable = getIntent().getExtras().getInt("key");

希望这会有所帮助......谢谢