V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
askfermi
V2EX  ›  问与答

Android 开发时遇到 MainActivity is not an enclosing class

  •  
  •   askfermi · 2015-08-27 14:42:52 +08:00 · 8267 次点击
    这是一个创建于 3379 天前的主题,其中的信息可能已经有所发展或是发生改变。

    MainActivity.java

    package cc.starlabs.ifevent_v2;
    
    import android.app.Activity;
    import android.os.Bundle;
    import android.support.v7.app.AppCompatActivity;
    import android.view.Menu;
    import android.view.MenuItem;
    
    import cc.starlabs.ifevent_v2.fragment.MainActivityFragment;
    
    public class MainActivity extends AppCompatActivity
    {
        @Override
        protected void onCreate (Bundle savedInstanceState )
        {
            super.onCreate (savedInstanceState );
            setContentView (R.layout.activity_main );
            if (savedInstanceState==null )
            {
                getSupportFragmentManager ().beginTransaction ().add (R.id.fragment,new MainActivityFragment ()).commit ();
            }
    
        }
        @Override
        public boolean onCreateOptionsMenu (Menu menu )
        {
            // Inflate the menu; this adds items to the action bar if it is present.
            getMenuInflater ().inflate (R.menu.menu_main, menu );
            return true;
        }
        @Override
        public boolean onOptionsItemSelected (MenuItem item )
        {
            // Handle action bar item clicks here. The action bar will
            // automatically handle clicks on the Home/Up button, so long
            // as you specify a parent activity in AndroidManifest.xml.
            int id = item.getItemId ();
    
            //noinspection SimplifiableIfStatement
            if (id == R.id.action_settings )
            {
                return true;
            }
    
            return super.onOptionsItemSelected (item );
        }
    }
    

    在 Fragment 里使用 MainActivity.this 的时候遇到了 MainActivity is not an enclosing class?
    刚开始写 Android...求指教

    7 条回复    2015-08-27 15:27:12 +08:00
    kx5d62Jn1J9MjoXP
        1
    kx5d62Jn1J9MjoXP  
       2015-08-27 15:02:20 +08:00   ❤️ 1
    Java 没学好的结果╮(╯_╰)╭
    MainActivity.this 这种引用方式只有在这个类是 MainActivity 的内部类(非 static )的时候才能用
    Fragment 里获取 Activity 用 getActivity ()就行了
    qinglangee
        2
    qinglangee  
       2015-08-27 15:12:48 +08:00
    @ssynhtn
    恩, 现在 0 基础 Android 培训的都只讲一点点 Java 就开始 Android 了
    askfermi
        3
    askfermi  
    OP
       2015-08-27 15:17:10 +08:00
    @ssynhtn 明白了 多谢!
    ruobe
        4
    ruobe  
       2015-08-27 15:17:33 +08:00
    核心竞争力笑尿
    askfermi
        5
    askfermi  
    OP
       2015-08-27 15:21:04 +08:00
    @ruobe
    askfermi
        7
    askfermi  
    OP
       2015-08-27 15:27:12 +08:00
    @ruobe 这都被发现了 ( ╯□╰ )
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5123 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 09:34 · PVG 17:34 · LAX 01:34 · JFK 04:34
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.