在动作条的标签Android的碎片碎片、动作、标签、Android

2023-09-12 03:25:20 作者:永远有多远,情深有多深

所以,我必须跑3个不同的片段班3动作条的标签。在动作条的TAB1我有一个用户填写的数据,然后保存在SQLite数据库,这种形式并进行了它的任务本身就可以作为一个项目一个简单的形式,但是当我试图将其整合为一个片段(FragmentTab1),那么应用程序崩溃,当我点击保存按钮。任何想法,为什么它可能会崩溃?我想我可能要可能实现一个onClickListener,不知道尽管! 我知道我使用的标签和片段的方式有点过时,但我仍希望得到它的工作这种方式。

错误日志

  02-14 16:42:14.560 10914-10914 / com.androidbegin.absfragtabhost / AndroidRuntime:致命异常:主要
工艺:com.androidbegin.absfragtabhost,PID:10914
java.lang.IllegalStateException:找不到在活动课com.androidbegin.absfragtabhost.MainActivity为onclick处理方法addButtonClicked(视图)的视图类android.widget.Button ID为'addButtonClicked
        在android.view.View $ 1.onClick(View.java:3828)
        在android.view.View.performClick(View.java:4456)
        在android.view.View $ PerformClick.run(View.java:18465)
        在android.os.Handler.handleCallback(Handler.java:733)
        在android.os.Handler.dispatchMessage(Handler.java:95)
        在android.os.Looper.loop(Looper.java:136)
        在android.app.ActivityThread.main(ActivityThread.java:5086)
        在java.lang.reflect.Method.invokeNative(本机方法)
        在java.lang.reflect.Method.invoke(Method.java:515)
        在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:785)
        在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
        在dalvik.system.NativeStart.main(本机方法)
     java.lang.NoSuchMethodException:产生的原因addButtonClicked [类android.view.View]
        在java.lang.Class.getConstructorOrMethod(Class.java:472)
        在java.lang.Class.getMethod(Class.java:857)
        在android.view.View $ 1.onClick(View.java:3821)
        在android.view.View.performClick(View.java:4456)
        在android.view.View $ PerformClick.run(View.java:18465)
        在android.os.Handler.handleCallback(Handler.java:733)
        在android.os.Handler.dispatchMessage(Handler.java:95)
        在android.os.Looper.loop(Looper.java:136)
        在android.app.ActivityThread.main(ActivityThread.java:5086)
        在java.lang.reflect.Method.invokeNative(本机方法)
        在java.lang.reflect.Method.invoke(Method.java:515)
        在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:785)
        在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
        在dalvik.system.NativeStart.main(本机方法)
 

FragmentTab1.java

 包com.androidbegin.absfragtabhost;

进口android.os.Bundle;
进口android.view.LayoutInflater;
进口android.view.View;
进口android.view.ViewGroup;
进口android.app.Fragment;
进口android.content.Context;
进口android.content.Intent;
进口android.support.v7.app.ActionBarActivity;
进口android.os.Bundle;
进口android.view.View;
进口android.widget.Button;
进口android.widget.EditText;
进口android.widget.TextView;
进口android.view.View.OnClickListener;



公共类FragmentTab1扩展片段{
@覆盖
公共查看onCreateView(LayoutInflater充气,容器的ViewGroup,
                         捆绑savedInstanceState){
    查看rootView = inflater.inflate(R.layout.fragment1,集装箱,假);
    返回rootView;
}

公共类活动来延长ActionBarActivity {

    TextView中的firstName;
    的EditText editTextName;

    TextView的textView5;
    的EditText editTextSurname;

    TextView的textView4;
    的EditText editTextMobile;

    TextView的textView2;
    的EditText editTextEmail;

    TextView的textView3;
    的EditText editTextAddress1;

    TextView的textView6;
    的EditText editTextAddress2;

    MyDBHandler dbHandler;


    @覆盖
    保护无效的onCreate(包savedInstanceState){
        super.onCreate(savedInstanceState);
        的setContentView(R.layout.activity_main);
        的firstName =(TextView中)findViewById(R.id.firstName);
        editTextName =(EditText上)findViewById(R.id.editTextName);
        textView5 =(TextView中)findViewById(R.id.textView5);
        editTextSurname =(EditText上)findViewById(R.id.editTextSurname);
        textView4 =(TextView中)findViewById(R.id.textView4);
        editTextMobile =(EditText上)findViewById(R.id.editTextMobile);
        textView2 =(TextView中)findViewById(R.id.textView2);
        editTextEmail =(EditText上)findViewById(R.id.editTextEmail);
        textView3 =(TextView中)findViewById(R.id.textView3);
        editTextAddress1 =(EditText上)findViewById(R.id.editTextAddress1);
        textView6 =(TextView中)findViewById(R.id.textView6);
        editTextAddress2 =(EditText上)findViewById(R.id.editTextAddress2);

        dbHandler =新MyDBHandler(这一点,NULL,NULL,1);
        // printDatabase();
    }


    //添加信息到数据库
    公共无效addButtonClicked(查看视图){
        详情详情=新的细节();
        details.setFirstname(editTextName.getText()的toString());
        details.setSurname(editTextSurname.getText()的toString());
        details.setPhone(editTextMobile.getText()的toString());
        details.setEmail(editTextEmail.getText()的toString());
        details.setAddress1(editTextAddress1.getText()的toString());
        details.setAddress2(editTextAddress2.getText()的toString());
        dbHandler.addDetails(详情);
        // printDatabase();
    }
}
}
 

Fragment1.xml

 <滚动型的xmlns:机器人=htt​​p://schemas.android.com/apk/res/android
的xmlns:工具=htt​​p://schemas.android.com/tool​​s
机器人:ID =@ + ID / scrollView1
机器人:layout_width =match_parent
机器人:layout_height =WRAP_CONTENT
工具:上下文=MainActivity。>

< RelativeLayout的
    机器人:layout_width =match_parent
    机器人:layout_height =600dp
    机器人:paddingBottom会=@扪/ activity_vertical_margin
    机器人:以下属性来=@扪/ activity_horizo​​ntal_margin
    机器人:paddingRight =@扪/ activity_horizo​​ntal_margin
    机器人:paddingTop =@扪/ activity_vertical_margin
    机器人:主题=@风格/ AppTheme
    机器人:touchscreenBlocksFocus =假>


    <! - 名 - >

    <的TextView
        机器人:ID =@ + ID /名字
        机器人:layout_width =WRAP_CONTENT
        机器人:layout_height =WRAP_CONTENT
        机器人:layout_alignBottom =@ + ID / editTextName
        机器人:layout_alignParentStart =真
        机器人:layout_alignParentLeft =真
        机器人:文本=@字符串/姓
        机器人:textAppearance =机器人:ATTR / textAppearanceMedium/>

    <的EditText
        机器人:ID =@ + ID / editTextName
        机器人:layout_width =WRAP_CONTENT
        机器人:layout_height =WRAP_CONTENT
        机器人:layout_alignParentLeft =真
        机器人:layout_alignParentStart =真
        机器人:layout_marginTop =5DP
        机器人:layout_marginStart =82dp
        机器人:layout_marginLeft =90dp
        机器人:EMS =10
        机器人:paddingTop =25dp
        机器人:inputType =文本>
    < /的EditText>



    &所述;! - 姓 - >

    <的TextView
        机器人:ID =@ + ID / textView6
        机器人:layout_width =WRAP_CONTENT
        机器人:layout_height =WRAP_CONTENT
        机器人:文本=@字符串/地址2
        机器人:textAppearance =机器人:ATTR / textAppearanceMedium
        机器人:layout_marginTop =33dp
        机器人:layout_below =@ + ID / editTextAddress1
        机器人:layout_alignParentLeft =真
        机器人:layout_alignParentStart =真/>

    <的EditText
        机器人:ID =@ + ID / editTextAddress2
        机器人:layout_width =WRAP_CONTENT
        机器人:layout_height =WRAP_CONTENT
        机器人:EMS =10
        机器人:inputType =文本
        机器人:layout_alignTop =@ + ID / textView6
        机器人:layout_alignLeft =@ + ID / editTextAddress1
        机器人:layout_alignStart =@ + ID / editTextAddress1/>




    <! - 手机号码 - >

    <的TextView
        机器人:ID =@ + ID / textView5
        机器人:layout_width =WRAP_CONTENT
        机器人:layout_height =WRAP_CONTENT
        机器人:layout_alignBottom =@ + ID / editTextSurname
        机器人:layout_alignLeft =@ + ID /名字
        机器人:layout_alignStart =@ + ID /名字
        机器人:文本=@字符串/姓
        机器人:textAppearance =机器人:ATTR / textAppearanceMedium/>

    <的EditText
        机器人:ID =@ + ID / editTextSurname
        机器人:layout_width =WRAP_CONTENT
        机器人:layout_height =WRAP_CONTENT
        机器人:layout_alignLeft =@ + ID / editTextMobile
        机器人:layout_alignStart =@ + ID / editTextMobile
        机器人:layout_below =@ + ID / editTextName
        机器人:layout_marginTop =22dp
        机器人:EMS =10
        机器人:inputType =文本/>





    <! - 电子邮件地址 - >


    <的TextView
        机器人:ID =@ + ID / textView2
        机器人:layout_width =WRAP_CONTENT
        机器人:layout_height =WRAP_CONTENT
        机器人:layout_alignBottom =@ + ID / editTextEmail
        机器人:layout_alignLeft =@ + ID /名字
        机器人:layout_alignStart =@ + ID /名字
        机器人:文本=@字符串/电子邮件
        机器人:textAppearance =机器人:ATTR / textAppearanceMedium
        机器人:inputType =textEmailAddress/>

    <的EditText
        机器人:ID =@ + ID / editTextEmail
        机器人:layout_width =WRAP_CONTENT
        机器人:layout_height =WRAP_CONTENT
        机器人:layout_alignStart =@ + ID / editTextMobile
        机器人:layout_alignLeft =@ + ID / editTextMobile
        机器人:layout_below =@ + ID / editTextMobile
        机器人:layout_marginTop =22dp
        机器人:EMS =10
        机器人:inputType =textEmailAddress/>



    <  - !地址1  - >

    <的TextView
        机器人:ID =@ + ID / textView3
        机器人:layout_width =WRAP_CONTENT
        机器人:layout_height =WRAP_CONTENT
        机器人:layout_alignBaseline =@ + ID / editTextAddress1
        机器人:layout_alignBottom =@ + ID / editTextAddress1
        机器人:layout_alignParentLeft =真
        机器人:layout_toLeftOf =@ + ID / editTextEmail
        机器人:文本=@字符串/地址1
        机器人:textAppearance =机器人:ATTR / textAppearanceMedium/>

    <的EditText
        机器人:ID =@ + ID / editTextAddress1
        机器人:layout_width =WRAP_CONTENT
        机器人:layout_height =WRAP_CONTENT
        机器人:layout_alignRight =@ + ID / editTextName
        机器人:layout_alignEnd =@ + ID / editTextName
        机器人:layout_below =@ + ID / editTextEmail
        机器人:layout_marginTop =30dp
        机器人:EMS =10
        机器人:inputType =文本/>




    &所述;! - 地址2  - >

    <的TextView
        机器人:ID =@ + ID / textView4
        机器人:layout_width =WRAP_CONTENT
        机器人:layout_height =WRAP_CONTENT
        机器人:layout_above =@ + ID / editTextEmail
        机器人:layout_alignLeft =@ + ID / textView5
        机器人:layout_alignStart =@ + ID / textView5
        机器人:文本=@字符串/电话
        机器人:textAppearance =机器人:ATTR / textAppearanceMedium/>


    <的EditText
        机器人:ID =@ + ID / editTextMobile
        机器人:layout_width =WRAP_CONTENT
        机器人:layout_height =WRAP_CONTENT
        机器人:layout_alignLeft =@ + ID / editTextName
        机器人:layout_alignStart =@ + ID / editTextName
        机器人:layout_below =@ + ID / editTextSurname
        机器人:layout_marginTop =22dp
        机器人:EMS =10
        机器人:inputType =手机>
    < /的EditText>




    <按钮
        机器人:ID =@ + ID / addButtonClicked
        机器人:layout_width =WRAP_CONTENT
        机器人:layout_height =WRAP_CONTENT
        机器人:的onClick =addButtonClicked
        机器人:文本=@字符串/保存
        机器人:layout_alignParentBottom =真
        机器人:layout_centerHorizo​​ntal =真/>


    <! - <按钮
        机器人:ID =@ + ID /按钮1
        机器人:layout_width =FILL_PARENT
        机器人:layout_height =WRAP_CONTENT
        机器人:文本=@字符串/更改
        机器人:layout_below =@ + ID / editTextAddress2
        机器人:layout_alignParentRight =真
        机器人:layout_alignParentEnd =真
        机器人:layout_marginTop =30dp
        机器人:的onClick =onBtnClicked/> - >


< / RelativeLayout的>
< /滚动型>
 
安卓app开发 CSDN

MainActivity

 包com.androidbegin.absfragtabhost;

进口android.app.ActionBar;
进口android.app.Fragment;
进口android.os.Bundle;
进口android.app.Activity;

公共类MainActivity延伸活动{
//声明标签变
ActionBar.Tab TAB1,TAB2,TAB3;
片段fragmentTab1 =新FragmentTab1();
片段fragmentTab2 =新FragmentTab2();
片段fragmentTab3 =新FragmentTab3();

@覆盖
公共无效的onCreate(包savedInstanceState){
    super.onCreate(savedInstanceState);
    的setContentView(R.layout.activity_main);

    动作条动作条= getActionBar();

    //隐藏动作条图标
    actionBar.setDisplayShowHomeEnabled(假);

    //隐藏动作条标题
    actionBar.setDisplayShowTitleEnabled(假);

    //创建动作条的标签
    actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

    //设置选项卡图标和标题
    TAB1 = actionBar.newTab()的setIcon(R.drawable.tab1)。
    TAB2 = actionBar.newTab()的setText(TAB2);
    TAB3 = actionBar.newTab()的setText(TAB3)。

    //设置选项卡监听器
    Tab1.setTabListener(新TabListener(fragmentTab1));
    Tab2.setTabListener(新TabListener(fragmentTab2));
    Tab3.setTabListener(新TabListener(fragmentTab3));

    //添加标签到动作条
    actionBar.addTab(TAB1);
    actionBar.addTab(TAB2);
    actionBar.addTab(TAB3);
}
}
 

解决方案

跟踪说:找不到在活动课com.androidbegin.absfragtabhost.MainActivity对视图类的android onclick处理方法addButtonClicked(查看)。 widget.Button ID为'addButtonClicked'

该方法必须是在活动课不是在片段,无论是把它放在那里,或者使用onClickListener,而不是(这是我会做什么)

这样的:

 按钮addButtonClicked =(按钮)rootView.findViewById(R.id.addButtonClicked);
addButtonClicked.setOnClickListener(新OnClickListener(){
            公共无效的onClick(视图v)
            {
                addButtonClicked(五); //(你不需要这个参数虽然)
            }
});
 

So I have 3 actionBar tabs running 3 different fragment classes. In Tab1 of the actionBar I have a simple form that a user fills in and the data is then saved in an SQLite database, this form and the tasks carried out on it work fine as a project by itself but when I tried to integrate it as a fragment (FragmentTab1) then the app crashes when I click the save button. Any ideas as to why it may be crashing? I think I may have to implement an onClickListener maybe, not sure though! I am aware that the way I am using tabs and fragments is a bit outdated but I'd still like to get it working this way.

Error Log

        02-14 16:42:14.560  10914-10914/com.androidbegin.absfragtabhost/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: com.androidbegin.absfragtabhost, PID: 10914
java.lang.IllegalStateException: Could not find a method addButtonClicked(View) in the activity class com.androidbegin.absfragtabhost.MainActivity for onClick handler on view class android.widget.Button with id 'addButtonClicked'
        at android.view.View$1.onClick(View.java:3828)
        at android.view.View.performClick(View.java:4456)
        at android.view.View$PerformClick.run(View.java:18465)
        at android.os.Handler.handleCallback(Handler.java:733)
        at android.os.Handler.dispatchMessage(Handler.java:95)
        at android.os.Looper.loop(Looper.java:136)
        at android.app.ActivityThread.main(ActivityThread.java:5086)
        at java.lang.reflect.Method.invokeNative(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:515)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
        at dalvik.system.NativeStart.main(Native Method)
     Caused by: java.lang.NoSuchMethodException: addButtonClicked [class android.view.View]
        at java.lang.Class.getConstructorOrMethod(Class.java:472)
        at java.lang.Class.getMethod(Class.java:857)
        at android.view.View$1.onClick(View.java:3821)
        at android.view.View.performClick(View.java:4456) 
        at android.view.View$PerformClick.run(View.java:18465)
        at android.os.Handler.handleCallback(Handler.java:733)
        at android.os.Handler.dispatchMessage(Handler.java:95) 
        at android.os.Looper.loop(Looper.java:136)
        at android.app.ActivityThread.main(ActivityThread.java:5086) 
        at java.lang.reflect.Method.invokeNative(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:515)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601) 
        at dalvik.system.NativeStart.main(Native Method)

FragmentTab1.java

package com.androidbegin.absfragtabhost;

import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.app.Fragment;
import android.content.Context;
import android.content.Intent;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.view.View.OnClickListener;



public class FragmentTab1 extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    View rootView = inflater.inflate(R.layout.fragment1, container, false);
    return rootView;
}

public class Activity extends ActionBarActivity {

    TextView firstName;
    EditText editTextName;

    TextView textView5;
    EditText editTextSurname;

    TextView textView4;
    EditText editTextMobile;

    TextView textView2;
    EditText editTextEmail;

    TextView textView3;
    EditText editTextAddress1;

    TextView textView6;
    EditText editTextAddress2;

    MyDBHandler dbHandler;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        firstName = (TextView) findViewById(R.id.firstName);
        editTextName = (EditText) findViewById(R.id.editTextName);
        textView5 = (TextView) findViewById(R.id.textView5);
        editTextSurname = (EditText) findViewById(R.id.editTextSurname);
        textView4 = (TextView) findViewById(R.id.textView4);
        editTextMobile = (EditText) findViewById(R.id.editTextMobile);
        textView2 = (TextView) findViewById(R.id.textView2);
        editTextEmail = (EditText) findViewById(R.id.editTextEmail);
        textView3 = (TextView) findViewById(R.id.textView3);
        editTextAddress1 = (EditText) findViewById(R.id.editTextAddress1);
        textView6 = (TextView) findViewById(R.id.textView6);
        editTextAddress2 = (EditText) findViewById(R.id.editTextAddress2);

        dbHandler = new MyDBHandler(this, null, null, 1);
        //printDatabase();
    }


    //Add details to the database
    public void addButtonClicked(View view) {
        Details details = new Details("");
        details.setFirstname(editTextName.getText().toString());
        details.setSurname(editTextSurname.getText().toString());
        details.setPhone(editTextMobile.getText().toString());
        details.setEmail(editTextEmail.getText().toString());
        details.setAddress1(editTextAddress1.getText().toString());
        details.setAddress2(editTextAddress2.getText().toString());
        dbHandler.addDetails(details);
        //printDatabase();
    }
}
}

Fragment1.xml

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/scrollView1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
tools:context=".MainActivity" >

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="600dp"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:theme="@style/AppTheme"
    android:touchscreenBlocksFocus="false">


    <!-- First name -->

    <TextView
        android:id="@+id/firstName"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/editTextName"
        android:layout_alignParentStart="true"
        android:layout_alignParentLeft="true"
        android:text="@string/firstname"
        android:textAppearance="?android:attr/textAppearanceMedium" />

    <EditText
        android:id="@+id/editTextName"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_marginTop="5dp"
        android:layout_marginStart="82dp"
        android:layout_marginLeft="90dp"
        android:ems="10"
        android:paddingTop="25dp"
        android:inputType="text" >
    </EditText>



    <!-- Surname -->

    <TextView
        android:id="@+id/textView6"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/address2"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:layout_marginTop="33dp"
        android:layout_below="@+id/editTextAddress1"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true" />

    <EditText
        android:id="@+id/editTextAddress2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:ems="10"
        android:inputType="text"
        android:layout_alignTop="@+id/textView6"
        android:layout_alignLeft="@+id/editTextAddress1"
        android:layout_alignStart="@+id/editTextAddress1" />




    <!-- Mobile Number -->

    <TextView
        android:id="@+id/textView5"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/editTextSurname"
        android:layout_alignLeft="@+id/firstName"
        android:layout_alignStart="@+id/firstName"
        android:text="@string/surname"
        android:textAppearance="?android:attr/textAppearanceMedium" />

    <EditText
        android:id="@+id/editTextSurname"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/editTextMobile"
        android:layout_alignStart="@+id/editTextMobile"
        android:layout_below="@+id/editTextName"
        android:layout_marginTop="22dp"
        android:ems="10"
        android:inputType="text" />





    <!-- Email Address -->


    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/editTextEmail"
        android:layout_alignLeft="@+id/firstName"
        android:layout_alignStart="@+id/firstName"
        android:text="@string/email"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:inputType="textEmailAddress" />

    <EditText
        android:id="@+id/editTextEmail"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignStart="@+id/editTextMobile"
        android:layout_alignLeft="@+id/editTextMobile"
        android:layout_below="@+id/editTextMobile"
        android:layout_marginTop="22dp"
        android:ems="10"
        android:inputType="textEmailAddress" />



    <!-- Address 1 -->

    <TextView
        android:id="@+id/textView3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/editTextAddress1"
        android:layout_alignBottom="@+id/editTextAddress1"
        android:layout_alignParentLeft="true"
        android:layout_toLeftOf="@+id/editTextEmail"
        android:text="@string/address1"
        android:textAppearance="?android:attr/textAppearanceMedium" />

    <EditText
        android:id="@+id/editTextAddress1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignRight="@+id/editTextName"
        android:layout_alignEnd="@+id/editTextName"
        android:layout_below="@+id/editTextEmail"
        android:layout_marginTop="30dp"
        android:ems="10"
        android:inputType="text" />




    <!-- Address 2 -->

    <TextView
        android:id="@+id/textView4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/editTextEmail"
        android:layout_alignLeft="@+id/textView5"
        android:layout_alignStart="@+id/textView5"
        android:text="@string/phone"
        android:textAppearance="?android:attr/textAppearanceMedium" />


    <EditText
        android:id="@+id/editTextMobile"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/editTextName"
        android:layout_alignStart="@+id/editTextName"
        android:layout_below="@+id/editTextSurname"
        android:layout_marginTop="22dp"
        android:ems="10"
        android:inputType="phone">
    </EditText>




    <Button
        android:id="@+id/addButtonClicked"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="addButtonClicked"
        android:text="@string/save"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true" />


    <!-- <Button
        android:id="@+id/button1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/change"
        android:layout_below="@+id/editTextAddress2"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true"
        android:layout_marginTop="30dp"
        android:onClick="onBtnClicked"/> -->


</RelativeLayout>
</ScrollView>

MainActivity

package com.androidbegin.absfragtabhost;

import android.app.ActionBar;
import android.app.Fragment;
import android.os.Bundle;
import android.app.Activity;

public class MainActivity extends Activity {
// Declare Tab Variable
ActionBar.Tab Tab1, Tab2, Tab3;
Fragment fragmentTab1 = new FragmentTab1();
Fragment fragmentTab2 = new FragmentTab2();
Fragment fragmentTab3 = new FragmentTab3();

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

    ActionBar actionBar = getActionBar();

    // Hide Actionbar Icon
    actionBar.setDisplayShowHomeEnabled(false);

    // Hide Actionbar Title
    actionBar.setDisplayShowTitleEnabled(false);

    // Create Actionbar Tabs
    actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

    // Set Tab Icon and Titles
    Tab1 = actionBar.newTab().setIcon(R.drawable.tab1);
    Tab2 = actionBar.newTab().setText("Tab2");
    Tab3 = actionBar.newTab().setText("Tab3");

    // Set Tab Listeners
    Tab1.setTabListener(new TabListener(fragmentTab1));
    Tab2.setTabListener(new TabListener(fragmentTab2));
    Tab3.setTabListener(new TabListener(fragmentTab3));

    // Add tabs to actionbar
    actionBar.addTab(Tab1);
    actionBar.addTab(Tab2);
    actionBar.addTab(Tab3);
}
}

解决方案

The trace says: "Could not find a method addButtonClicked(View) in the activity class com.androidbegin.absfragtabhost.MainActivity for onClick handler on view class android.widget.Button with id 'addButtonClicked'"

The method needs to be in the activity class not in the fragment, either put it in there or use a onClickListener instead (which is what I would do)

Like this:

Button addButtonClicked = (Button)rootView.findViewById(R.id.addButtonClicked);
addButtonClicked.setOnClickListener(new OnClickListener(){
            public void onClick(View v) 
            {
                addButtonClicked(v); //(you dont need this parameter though)
            }
});