2016-01-15 245 views
0

我正在使用解析,我是一个初学者到android开发。我需要在单击login_button时启动MainActivity。但是当我将我的MainActivity类添加到LoginSampleActivity中的分析登录构建器时,它显示'MainActivity不是封闭类'错误。MainActivity不是一个封闭类

这是我的MainActivity

public class MainActivity extends AppCompatActivity 
    implements NavigationView.OnNavigationItemSelectedListener { 


@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

这是LoginSampleActivity

public class LoginSampleActivity extends Activity{ 

这是我的按钮单击事件

loginOrLogoutButton.setOnClickListener(new OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      if (currentUser != null) { 
       ParseUser.logOut(); 
       currentUser = null; 
       showProfileLoggedOut(); 
      } else { 
       Toast.makeText(getBaseContext(),"Login",Toast.LENGTH_SHORT).show(); 
       ParseLoginBuilder loginBuilder = new ParseLoginBuilder(
         MainActivity.this); 
       startActivityForResult(loginBuilder.build(), LOGIN_REQUEST); 
      } 
     } 
    }); 

这是我的清单文件

<activity 
     android:name=".LoginSampleActivity" 
     android:launchMode="singleTop"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
    <activity 
     android:name=".MainActivity" 
     android:label="@string/title_activity_main" 
     android:launchMode="singleTop" 
     android:theme="@style/AppTheme.NoActionBar"> 

    </activity> 

谢谢

+0

你的意图是什么?你可以发布吗? (loginBuilder.build()return) – nurisezgin

回答

3

它不是关于名称“MainActivity或FirstActivity”。检查清单文件。

<activity 
     android:name=".first" 
     android:label="@string/app_name" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.**LAUNCHER**" /> 
     </intent-filter> 
    </activity> 
    在活动标签
  1. ,类别 “.LAUNCHER” 定义的第一页开始。
  2. 检查您的清单,哪个活动具有类别“启动器”。
  3. 在该活动上创建登录按钮并创建另一个要传递的类。
+0

<类别机器人:名称= ”android.intent.category.LAUNCHER“/> <活动 机器人:名称=” MainActivity。 “ 机器人:标签=” @ string/title_activity_main“ android:launchMode =”singleTop“ android:theme =”@ style/AppTheme。NoActionBar“> ' – Choxmi

+0

感谢您的回复。这是我的清单文件。我在该活动中创建了登录按钮。请帮助 – Choxmi

+0

1.创建一个新的类名”Second“2.扩展AppcompatActivity 3.创建xml文件和设计第二页的布局4.在“Second.java”插入Oncreate代码()5.内部oncreate - >“setcontentview(”>> xml文件名<<“)”6.现在你的活动设置.. 7.注册清单8.打开清单.xml 9.在下创建新的 10.在你的loginSampleactivity - >里面点击按钮“Intent inn = new意图(LoginSampleActivity.this,Second.class); startActtivity(INN)” –

1

问题是在下面一行:

ParseLoginBuilder loginBuilder = new ParseLoginBuilder(
        MainActivity.this); 

而不是MainActivity.this我想你会喜欢写MainActivity.class

编译错误说LoginSampleActivity不延伸MainActivity所以你不能使用MainActivity.thisLoginSampleActivity内。

0

谢谢你的回答。我为我的问题找到了解决方案。问题出在ParseLoginBuilder类中。因此,我创建了一个名为MainActivityBuider的新类,并将build()方法添加到该类。现在它正在工作。再次感谢您的回答。 @Marek @Rathna