【问题标题】:the method startactivity(intent,bundle) in the type activity is not applicable for the argument (int,intent)类型活动中的方法 startactivity(intent,bundle) 不适用于参数 (int,intent)
【发布时间】:2015-09-12 21:44:05
【问题描述】:

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

当我使用意图链接它并将结果定向到 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);                 
  }

【问题讨论】:

  • 请用代码澄清您的问题

标签: android eclipse android-intent android-framelayout


【解决方案1】:
 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】:

    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);
    

    【讨论】:

    • 无论如何,感谢您的解决方案。但是,我想将意图的结果定向到具有 id (R.id.main) 的框架布局。你能解决吗?
    • 你应该在 Page1 Activity 中处理它。
    【解决方案3】:

    尝试如下,

            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);
    
        }
    

    获取目标Activity上的值

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-10
      • 1970-01-01
      相关资源
      最近更新 更多