我对Android开发非常陌生,我尝试使用ABS创建标签式活动,以便我可以将其与+10 API一起使用,到目前为止我都成功了。但是当我试图在片段中创建一个按钮来启动另一个活动时,我的问题就出现了,我发现了NullPointException。这是我的档案。
MainPaiement.java
package com.enhancedtechnologies.siclapplication.GestionPaiement;
import android.os.Bundle;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.support.v4.view.ViewPager;
import com.actionbarsherlock.app.ActionBar;
import com.actionbarsherlock.app.ActionBar.Tab;
import com.actionbarsherlock.app.SherlockFragmentActivity;
import com.enhancedtechnologies.siclapplication.R;
public class MainPaiement extends SherlockFragmentActivity {
// Declare Variables
ActionBar mActionBar;
ViewPager mPager;
Tab tab;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Get the view from activity_main.xml
setContentView(R.layout.activity_main_paiement);
// Activate Navigation Mode Tabs
mActionBar = getSupportActionBar();
mActionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
// Locate ViewPager in activity_main.xml
mPager = (ViewPager) findViewById(R.id.pager);
// Activate Fragment Manager
FragmentManager fm = getSupportFragmentManager();
// Capture ViewPager page swipes
ViewPager.SimpleOnPageChangeListener ViewPagerListener = new ViewPager.SimpleOnPageChangeListener() {
@Override
public void onPageSelected(int position) {
super.onPageSelected(position);
// Find the ViewPager Position
mActionBar.setSelectedNavigationItem(position);
}
};
mPager.setOnPageChangeListener(ViewPagerListener);
// Locate the adapter class called ViewPagerAdapter.java
ViewPagerAdapter viewpageradapter = new ViewPagerAdapter(fm);
// Set the View Pager Adapter into ViewPager
mPager.setAdapter(viewpageradapter);
// Capture tab button clicks
ActionBar.TabListener tabListener = new ActionBar.TabListener() {
@Override
public void onTabSelected(Tab tab, FragmentTransaction ft) {
// Pass the position on tab click to ViewPager
mPager.setCurrentItem(tab.getPosition());
}
@Override
public void onTabUnselected(Tab tab, FragmentTransaction ft) {
// TODO Auto-generated method stub
}
@Override
public void onTabReselected(Tab tab, FragmentTransaction ft) {
// TODO Auto-generated method stub
}
};
// Create first Tab
tab = mActionBar.newTab().setText("Nouveau Paiement").setTabListener(tabListener);
mActionBar.addTab(tab);
// Create second Tab
tab = mActionBar.newTab().setText("Paiement Effectu\u00e9").setTabListener(tabListener);
mActionBar.addTab(tab);
}
}
package com.enhancedtechnologies.siclapplication.GestionPaiement;
import android.content.Intent;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import com.actionbarsherlock.app.SherlockFragment;
import com.enhancedtechnologies.siclapplication.R;
public class FragmentPaiementEffec extends SherlockFragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_paiement_rech, container, false);
// button chercher
Button btnchercher = (Button) view.findViewById(R.id.button6);
// this is Line 30
btnchercher.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(getActivity(), ActivityPaiementrechercheResultat.class));
}
});
return view;
}
}
07-27 20:30:32.264 1190-1190/? E/AndroidRuntime﹕ FATAL EXCEPTION: main
java.lang.NullPointerException
at com.enhancedtechnologies.siclapplication.GestionPaiement.FragmentPaiementEffec.onCreateView(FragmentPaiementEffec.java:29)
at android.support.v4.app.Fragment.performCreateView(Fragment.java:1789)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:955)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1138)
at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:740)
at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1501)
at android.support.v4.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:490)
at android.support.v4.app.FragmentPagerAdapter.finishUpdate(FragmentPagerAdapter.java:141)
at android.support.v4.view.ViewPager.populate(ViewPager.java:1105)
at android.support.v4.view.ViewPager.populate(ViewPager.java:951)
at android.support.v4.view.ViewPager.onMeasure(ViewPager.java:1473)
at android.view.View.measure(View.java:8313)
at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:581)
at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:365)
at android.view.View.measure(View.java:8313)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:250)
at android.view.View.measure(View.java:8313)
at android.widget.LinearLayout.measureVertical(LinearLayout.java:531)
at android.widget.LinearLayout.onMeasure(LinearLayout.java:309)
at android.view.View.measure(View.java:8313)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:250)
at android.view.View.measure(View.java:8313)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:250)
at android.view.View.measure(View.java:8313)
at android.view.ViewRoot.performTraversals(ViewRoot.java:839)
at android.view.ViewRoot.handleMessage(ViewRoot.java:1859)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:130)
at android.app.ActivityThread.main(ActivityThread.java:3683)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:507)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
at dalvik.system.NativeStart.main(Native Method)
修改
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#FFF1E1" >
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center_vertical"
android:id="@+id/linearLayout9"
android:weightSum="1">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Recherche des taxes recouvrées"
android:id="@+id/textView20"
android:textColor="#FF6D2C20"
android:textSize="35sp"
android:layout_marginBottom="35dp"
android:layout_gravity="center_horizontal" />
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/linearLayout4"
android:layout_marginBottom="30dp"
android:gravity="center_horizontal" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Taxe"
android:id="@+id/textView15"
android:textColor="#FF6D2C20"
android:textSize="25sp"
android:layout_marginBottom="15dp" />
<Spinner
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/spinner2"
android:background="#ffffc391" />
</LinearLayout>
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/linearLayout7"
android:layout_marginBottom="30dp"
android:gravity="center_horizontal" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="CIN Redevable/Numéro de patente"
android:id="@+id/textView16"
android:textColor="#FF6D2C20"
android:textSize="25sp"
android:layout_marginBottom="15dp" />
<EditText
android:layout_width="300dp"
android:layout_height="60dp"
android:inputType="numberDecimal"
android:ems="10"
android:id="@+id/editText4"
android:background="#ffffc391" />
</LinearLayout>
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/linearLayout8"
android:layout_marginBottom="30dp"
android:gravity="center_horizontal" >
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginBottom="30dp" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Du : "
android:id="@+id/textView18"
android:textColor="#FF6D2C20"
android:textSize="25sp"
android:layout_marginLeft="100dp" />
<EditText
android:layout_width="300dp"
android:layout_height="60dp"
android:inputType="numberDecimal"
android:ems="10"
android:id="@+id/editText5"
android:background="#ffffc391" />
</LinearLayout>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Période de paiement"
android:id="@+id/textView17"
android:textColor="#FF6D2C20"
android:textSize="25sp"
android:layout_marginBottom="15dp" />
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Au : "
android:id="@+id/textView19"
android:textColor="#FF6D2C20"
android:textSize="25sp"
android:layout_marginLeft="100dp" />
<EditText
android:layout_width="300dp"
android:layout_height="60dp"
android:inputType="numberDecimal"
android:ems="10"
android:id="@+id/editText6"
android:background="#ffffc391" />
</LinearLayout>
</LinearLayout>
<Button
style="@style/styleButtons_port"
android:layout_width="250dp"
android:layout_height="wrap_content"
android:text="Chercher"
android:id="@+id/button2"
android:textSize="35sp"
android:padding="10dp"
android:textColor="#ff000000" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
如果我得到任何帮助,我将不胜感激!
答案 0 :(得分:0)
似乎你的应用程序无法在视图堆栈中找到button6。 确保您创建了此类视图。 如果此对象在到达之前存在,请尝试调试和wach。
答案 1 :(得分:0)
您在fragment_redevable_rech中定义了button6,但FragmentPaiementEffec正在从fragment_paiement_rech创建其视图,fragment_paiement_rech是一个不同的布局文件。你的片段应该膨胀fragment_redevable_rech。
你的片段的onCreateView应该有
View view = inflater.inflate(R.layout.fragment_redevable_rech, container, false);