Java 将新项目添加到现有的project android应用程序(如何移动到下一个活动)
我只看过YouTube和互联网上的教程,但我需要一个具体的指导。(还是个学生,只是自学android开发。) 我找到了一个源代码,我想在实验应用程序中作为参考:(归功于所有者) 我想尝试在点击欢迎屏幕上的“开始”按钮后显示它,但按钮的意图对我不起作用。应用程序崩溃了Java 将新项目添加到现有的project android应用程序(如何移动到下一个活动),java,android,android-layout,android-studio,android-fragments,Java,Android,Android Layout,Android Studio,Android Fragments,我只看过YouTube和互联网上的教程,但我需要一个具体的指导。(还是个学生,只是自学android开发。) 我找到了一个源代码,我想在实验应用程序中作为参考:(归功于所有者) 我想尝试在点击欢迎屏幕上的“开始”按钮后显示它,但按钮的意图对我不起作用。应用程序崩溃了 public class WelcomeScreen extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState)
public class WelcomeScreen extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_welcome_screen);
Button gsbtn=(Button)findViewById(R.id.getstartedbtn);
gsbtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent i=new Intent(getApplicationContext(),MainActivity.class);
startActivity(i);
}
});
更新
Logcat
java.lang.NullPointerException: Attempt to invoke interface method 'int android.database.Cursor.getCount()' on a null object reference
at e.alasse.foodiary.views.activities.MainActivity.onLoadFinished(MainActivity.java:382)
at e.alasse.foodiary.views.activities.MainActivity.onLoadFinished(MainActivity.java:66)
at android.support.v4.app.LoaderManagerImpl$LoaderObserver.onChanged(LoaderManagerImpl.java:250)
at android.arch.lifecycle.LiveData.considerNotify(LiveData.java:109)
at android.arch.lifecycle.LiveData.dispatchingValue(LiveData.java:126)
at android.arch.lifecycle.LiveData.setValue(LiveData.java:282)
at android.arch.lifecycle.MutableLiveData.setValue(MutableLiveData.java:33)
at android.support.v4.app.LoaderManagerImpl$LoaderInfo.setValue(LoaderManagerImpl.java:189)
at android.support.v4.app.LoaderManagerImpl$LoaderInfo.onLoadComplete(LoaderManagerImpl.java:174)
at android.support.v4.content.Loader.deliverResult(Loader.java:132)
at android.support.v4.content.CursorLoader.deliverResult(CursorLoader.java:109)
at android.support.v4.content.CursorLoader.deliverResult(CursorLoader.java:41)
at android.support.v4.content.AsyncTaskLoader.dispatchOnLoadComplete(AsyncTaskLoader.java:258)
at android.support.v4.content.AsyncTaskLoader$LoadTask.onPostExecute(AsyncTaskLoader.java:83)
at android.support.v4.content.ModernAsyncTask.finish(ModernAsyncTask.java:490)
at android.support.v4.content.ModernAsyncTask$InternalHandler.handleMessage(ModernAsyncTask.java:507)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:6669)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="e.alasse.foodiary">
<uses-permission android:name="android.permission.INTERNET" />
<application
android:name=".MyApplication"
android:allowBackup="true"
android:icon="@mipmap/icon2"
android:roundIcon="@mipmap/icon2"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".WelcomeScreen">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<provider
android:name="e.alasse.foodiary.providers.RestaurantContentProvider"
android:authorities="e.alasse.providers.RestaurantContentProvider"
android:exported="false" />
<activity android:name=".views.activities.MainActivity"></activity>
<activity android:name=".ImagesActivity" />
<activity android:name=".UploadActivity" />
</application>
编辑2:
Android清单
java.lang.NullPointerException: Attempt to invoke interface method 'int android.database.Cursor.getCount()' on a null object reference
at e.alasse.foodiary.views.activities.MainActivity.onLoadFinished(MainActivity.java:382)
at e.alasse.foodiary.views.activities.MainActivity.onLoadFinished(MainActivity.java:66)
at android.support.v4.app.LoaderManagerImpl$LoaderObserver.onChanged(LoaderManagerImpl.java:250)
at android.arch.lifecycle.LiveData.considerNotify(LiveData.java:109)
at android.arch.lifecycle.LiveData.dispatchingValue(LiveData.java:126)
at android.arch.lifecycle.LiveData.setValue(LiveData.java:282)
at android.arch.lifecycle.MutableLiveData.setValue(MutableLiveData.java:33)
at android.support.v4.app.LoaderManagerImpl$LoaderInfo.setValue(LoaderManagerImpl.java:189)
at android.support.v4.app.LoaderManagerImpl$LoaderInfo.onLoadComplete(LoaderManagerImpl.java:174)
at android.support.v4.content.Loader.deliverResult(Loader.java:132)
at android.support.v4.content.CursorLoader.deliverResult(CursorLoader.java:109)
at android.support.v4.content.CursorLoader.deliverResult(CursorLoader.java:41)
at android.support.v4.content.AsyncTaskLoader.dispatchOnLoadComplete(AsyncTaskLoader.java:258)
at android.support.v4.content.AsyncTaskLoader$LoadTask.onPostExecute(AsyncTaskLoader.java:83)
at android.support.v4.content.ModernAsyncTask.finish(ModernAsyncTask.java:490)
at android.support.v4.content.ModernAsyncTask$InternalHandler.handleMessage(ModernAsyncTask.java:507)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:6669)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="e.alasse.foodiary">
<uses-permission android:name="android.permission.INTERNET" />
<application
android:name=".MyApplication"
android:allowBackup="true"
android:icon="@mipmap/icon2"
android:roundIcon="@mipmap/icon2"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".WelcomeScreen">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<provider
android:name="e.alasse.foodiary.providers.RestaurantContentProvider"
android:authorities="e.alasse.providers.RestaurantContentProvider"
android:exported="false" />
<activity android:name=".views.activities.MainActivity"></activity>
<activity android:name=".ImagesActivity" />
<activity android:name=".UploadActivity" />
</application>
更新版本
首先,在清单中,您必须使用
名称
属性声明应用程序类。
在您的清单中添加类似的内容:
在onLoadFinished
方法的MainActivity
类中,您可以看到以下内容:
RestaurantInfoModel model = MyApplication.getGsonInstance().fromJson(cursor.getString(dataIndex), RestaurantInfoModel.class);
它调用MyApplication的方法getGsonInstance()
,为了确保此方法成功执行,您应该在AndroidManifest.xml
中添加此行:
android:name=".MyApplication"
有关自定义应用程序的详细信息是您能发布错误吗?您好,请发布您的错误,您似乎没有在清单文件中定义MainActivity。请尝试使用Intent i=new Intent(包上下文:WelcomeScreen.this,MainActivity.class);我编辑了它并添加了日志。请尝试将getApplicationContext()
替换为WelcomScreen。这个
,看看它是否有效?谢谢先生。我在清单上添加了`android:name=“.MyApplication”`。它在按下get Start后工作,加载一段时间后崩溃。我没有得到getCityId()
部分