- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当我运行应用程序时,我不断在第 56 行收到 NullPointerException,如下面的调试日志所示。我对 Android 应用程序编程比较陌生,所以我不知道这里发生了什么。有人可以帮我解决这个问题吗?我的 MainActivity.java:
package com.termite.pockettube;
import java.util.Locale;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.app.NavUtils;
import android.support.v4.view.ViewPager;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.TextView;
public class MainActivity extends FragmentActivity implements View.OnClickListener{
/**
* The {@link android.support.v4.view.PagerAdapter} that will provide
* fragments for each of the sections. We use a
* {@link android.support.v4.app.FragmentPagerAdapter} derivative, which
* will keep every loaded fragment in memory. If this becomes too memory
* intensive, it may be best to switch to a
* {@link android.support.v4.app.FragmentStatePagerAdapter}.
*/
SectionsPagerAdapter mSectionsPagerAdapter;
/**
* The {@link ViewPager} that will host the section contents.
*/
ViewPager mViewPager;
Button button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Create the adapter that will return a fragment for each of the three
// primary sections of the app.
mSectionsPagerAdapter = new SectionsPagerAdapter(
getSupportFragmentManager());
// Set up the ViewPager with the sections adapter.
mViewPager = (ViewPager) findViewById(R.id.pager);
mViewPager.setAdapter(mSectionsPagerAdapter);
button = (Button) findViewById(R.id.button);
button.setOnClickListener(this); //this is line 56
}
public void countryOnClick() {
startActivity(new Intent("com.termite.pockettube.COUNTRY"));
}
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.button:
countryOnClick();
break;
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
/**
* A {@link FragmentPagerAdapter} that returns a fragment corresponding to
* one of the sections/tabs/pages.
*/
public class SectionsPagerAdapter extends FragmentPagerAdapter {
public SectionsPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
// getItem is called to instantiate the fragment for the given page.
// Return a DummySectionFragment (defined as a static inner class
// below) with the page number as its lone argument.
switch (position) {
case 0:
Fragment1 fragment1 = new Fragment1();
return fragment1;
case 1:
Fragment2 fragment2 = new Fragment2();
return fragment2;
case 2:
Fragment3 fragment3 = new Fragment3();
return fragment3;
case 3:
Fragment4 fragment4 = new Fragment4();
return fragment4;
case 4:
Fragment5 fragment5 = new Fragment5();
return fragment5;
}
return null;
}
@Override
public int getCount() {
// Show 5 total pages.
return 5;
}
@Override
public CharSequence getPageTitle(int position) {
Locale l = Locale.getDefault();
switch (position) {
case 0:
return getString(R.string.title_section1).toUpperCase(l);
case 1:
return getString(R.string.title_section2).toUpperCase(l);
case 2:
return getString(R.string.title_section3).toUpperCase(l);
case 3:
return getString(R.string.title_section4).toUpperCase(l);
case 4:
return getString(R.string.title_section5).toUpperCase(l);
}
return null;
}
}
}
这是我尝试运行应用程序时的调试日志:
12-20 01:13:26.898: D/AndroidRuntime(6539): Shutting down VM
12-20 01:13:26.906: W/dalvikvm(6539): threadid=1: thread exiting with uncaught exception (group=0x40af21f8)
12-20 01:13:26.906: E/AndroidRuntime(6539): FATAL EXCEPTION: main
12-20 01:13:26.906: E/AndroidRuntime(6539): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.termite.pockettube/com.termite.pockettube.MainActivity}: java.lang.NullPointerException
12-20 01:13:26.906: E/AndroidRuntime(6539): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2035)
12-20 01:13:26.906: E/AndroidRuntime(6539): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2060)
12-20 01:13:26.906: E/AndroidRuntime(6539): at android.app.ActivityThread.access$600(ActivityThread.java:127)
12-20 01:13:26.906: E/AndroidRuntime(6539): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1181)
12-20 01:13:26.906: E/AndroidRuntime(6539): at android.os.Handler.dispatchMessage(Handler.java:99)
12-20 01:13:26.906: E/AndroidRuntime(6539): at android.os.Looper.loop(Looper.java:137)
12-20 01:13:26.906: E/AndroidRuntime(6539): at android.app.ActivityThread.main(ActivityThread.java:4558)
12-20 01:13:26.906: E/AndroidRuntime(6539): at java.lang.reflect.Method.invokeNative(Native Method)
12-20 01:13:26.906: E/AndroidRuntime(6539): at java.lang.reflect.Method.invoke(Method.java:511)
12-20 01:13:26.906: E/AndroidRuntime(6539): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
12-20 01:13:26.906: E/AndroidRuntime(6539): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
12-20 01:13:26.906: E/AndroidRuntime(6539): at dalvik.system.NativeStart.main(Native Method)
12-20 01:13:26.906: E/AndroidRuntime(6539): Caused by: java.lang.NullPointerException
12-20 01:13:26.906: E/AndroidRuntime(6539): at com.termite.pockettube.MainActivity.onCreate(MainActivity.java:56)
12-20 01:13:26.906: E/AndroidRuntime(6539): at android.app.Activity.performCreate(Activity.java:4635)
12-20 01:13:26.906: E/AndroidRuntime(6539): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
12-20 01:13:26.906: E/AndroidRuntime(6539): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1999)
12-20 01:13:26.906: E/AndroidRuntime(6539): ... 11 more
list xml 代码:
<uses-sdk
android:minSdkVersion="11"
android:targetSdkVersion="19" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.termite.pockettube.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="com.termite.pockettube.CountryActivity"
android:label="@string/title_activity_country" >
<intent-filter>
<action android:name="com.termite.pockettube.COUNTRY" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
</application>
</manifest>
activity_main.xml:
<android.support.v4.view.ViewPager xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" >
<android.support.v4.view.PagerTabStrip
android:id="@+id/pager_title_strip"
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_gravity="top"
android:background="#33b5e5"
android:paddingBottom="4dp"
android:paddingTop="4dp"
android:textColor="#fff"
>
</android.support.v4.view.PagerTabStrip>
</android.support.v4.view.ViewPager>
fragment1.xml:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity$DummySectionFragment" >
<Button
android:id="@+id/button"
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_alignParentTop="true"
android:text="@string/button" />
</RelativeLayout>
最佳答案
您需要在 activity_main.xml
中添加按钮,因为您已在 fragment_1.xml
中添加了该按钮,这就是 NPE 的原因。
在activity_main.xml
中添加按钮
将解决您的问题
**activity_main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="@dimen/padding_Small"
android:shrinkColumns="*"
android:stretchColumns="*" >
<android.support.v4.view.ViewPager
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" >
<android.support.v4.view.PagerTabStrip
android:id="@+id/pager_title_strip"
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_gravity="top"
android:background="#33b5e5"
android:paddingBottom="4dp"
android:paddingTop="4dp"
android:textColor="#fff" />
</android.support.v4.view.ViewPager>
<Button
android:id="@+id/button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:text="ButtonText" />
</RelativeLayout>
关于MainAcitivity setOnClickListener 中的 java.lang.NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20697564/
我读到了 avoiding memory leaks 为避免上下文相关的内存泄漏,请记住以下几点: 尝试使用 context-application 而不是 context-activity 我有两个
我想在按钮单击时显示图像,但我的代码中有三个错误。怎么了? class name "SequencerActivity" SequencerActivity 类型必须实现继承的抽象方法DialogIn
我一直在摆弄 Snake示例代码,我正在尝试修改它以进行培训,并希望增加对 Android 工作原理的理解。 到目前为止,我已经添加了两个按钮 + 相应的 setOnClickListener 代码,
我是 android 的新手,我想知道如果我不在我的布局之一中使用“setOnClickListener”到底会发生什么,因为看起来我的应用程序仍然可以正常运行而没有任何错误。谁能给我解释一下? 例子
我花了一整天的时间试图弄清楚如何使这项工作成功。我成功设置了自定义适配器和我的 ListView。问题是我得到了单击的项目的正确位置,但该项目始终是列表中的最后一个。 更重要的是,我在另一个线程中调用
我的代码有时会出现空指针异常。奇怪的是,这种情况并不是每次都会发生,我也不知道为什么。帮忙? package net.obviam.droidz; public class HomeView exte
我想在按钮 A 中进行处理时禁用按钮 B。 public class GoJump extends Activity{ Button answerA, answerB; public void
因此,每当我尝试使用 set onclicklistener 并尝试在模拟器上运行它时,它都会显示一条错误消息,指出应用程序已停止。当我取出那部分代码时,它开始工作。 这是我的代码:(Mainacti
我正在 ActivityMain.java 中创建按钮编译器无法识别 onSetClickListener。我错过了什么? package com.example.mydiceapp; import
好吧,如果您没有看到我之前的问题,我问如何使用 2 个命令按钮将文本从 edittext 导入到 textview 中?这是我所做的: 我不断收到此错误 "Syntax error on token
我正在使用GitHub我的应用程序 UI 的 FlatUI 类。我已经使用 FlatButtons 成功生成了布局,现在我想为这些按钮设置监听器。正如 FlatUI 示例代码中提到的,我在 Activ
我正在尝试在 Android 应用程序中为 recycleview 设置 onlclick 监听器,但尽管一切都正确,但我仍然在 IDE 中收到上述错误。 这是 DrinksActivity 类的完整
我想从此 fragment 访问来自不属于该 fragment 的另一个布局的 View 。这就是我得到 NullPointerException 的原因。 我该如何解决这个问题? fragment
您好,我收到错误消息: the method setonclickListener(new onclickListener(){}) is undefined for the type button
我在 listView 中按下一个列表项。如何从 ListView 项目转到我的另一个 Activity ?请帮助我了解如何解决这个问题。 这是我的代码,如果: package com.example
这是我的java代码...... public class Account extends Activity { private Database v1; EditText telefon,sifre
我是 android 开发的新手,我意识到在真实世界的示例中使用所有界面比在试图向您展示如何使用界面的示例代码中使用它们要困难得多。 因为我想理解我输入的每一行,所以我将从这里开始: Button c
我正在使用 tabbedActivity 制作一个用于研究的应用程序加上按钮没有采取行动,有人知道解释原因,我已经尝试了几种形式但都没有行动,不会给出错误并破坏应用程序但按钮什么都没有 @Overri
我使用的表布局包含来自 SQLite 数据库的行,因此我添加行时动态添加 View 到行。现在,我在每一行中添加了 imageButton 来处理行版本和将其添加到 SQLite 数据库的其他行。我想
首先,请不要将其标记为重复。我在 stackoverflow.com 上发现了类似的问题,但找不到我的解决方案。请看这张图片 Screenshot 我正在尝试检查 EditText 不应为空。但是 s
我是一名优秀的程序员,十分优秀!