将父活动对象传递给AsyncTask

时间:2015-07-21 21:04:31

标签: android android-asynctask

我想将调用Asynctask的父活动传递给Asynctask ..

以下是我的代码的一部分我想在doinbackground参数中使用活动对象而不是字符串但我不能因为我无法做到这一点..请解释如何做..

<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:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity"
    android:background="#ffffffff"
    android:id="@+id/relativelayout">

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/button2"
        android:text="/"
        android:background="#FF6600"
        android:onClick="appendCharacter"
        android:layout_alignParentBottom="true"
        android:layout_toRightOf="@+id/button4"
        android:layout_toEndOf="@+id/button4" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/button4"
        android:text="*"
        android:background="#FF6600"
        android:onClick="appendCharacter"
        android:layout_alignTop="@+id/button5"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/button5"
        android:text="="
        android:background="#85C2FF"
        android:layout_alignParentBottom="true"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true"
        android:onClick="displayResult"
        android:layout_alignLeft="@+id/button19"
        android:layout_alignStart="@+id/button19"
        android:layout_toEndOf="@+id/button2"
        android:layout_toRightOf="@+id/button2" />

    <TextView
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:id="@+id/textView"
        android:layout_below="@+id/button2"
        android:layout_alignRight="@+id/button"
        android:layout_alignEnd="@+id/button" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/button"
        android:text="+"
        android:background="#FF6600"
        android:layout_above="@+id/button2"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:onClick="appendCharacter" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/button3"
        android:text="-"
        android:background="#FF6600"
        android:layout_below="@+id/button6"
        android:layout_toRightOf="@+id/button"
        android:layout_toEndOf="@+id/button"
        android:onClick="appendCharacter" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/button6"
        android:text="0"
        android:background="#ffff5830"
        android:layout_above="@+id/button"
        android:layout_toRightOf="@+id/button7"
        android:layout_toEndOf="@+id/button19"
        android:onClick="appendCharacter"
        android:textAlignment="center" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/button7"
        android:text="9"
        android:background="#ffff5830"
        android:layout_alignBottom="@+id/button6"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:onClick="appendCharacter" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/button8"
        android:text="8"
        android:background="#ffff5830"
        android:layout_above="@+id/button6"
        android:layout_toRightOf="@+id/button7"
        android:layout_toEndOf="@+id/button7"
        android:onClick="appendCharacter"
        android:textAlignment="center" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/button9"
        android:text="7"
        android:background="#ffff5830"
        android:layout_above="@+id/button7"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:onClick="appendCharacter" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/button10"
        android:text="6"
        android:background="#ffff5830"
        android:onClick="appendCharacter"
        android:layout_below="@+id/button13"
        android:layout_toRightOf="@+id/textView"
        android:layout_toEndOf="@+id/textView"
        android:textAlignment="center" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/button11"
        android:text="5"
        android:background="#ffff5830"
        android:layout_above="@+id/button9"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:onClick="appendCharacter" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/button12"
        android:text="4"
        android:background="#ffff5830"
        android:onClick="appendCharacter"
        android:layout_above="@+id/button10"
        android:layout_toRightOf="@+id/button11"
        android:layout_toEndOf="@+id/button11"
        android:textAlignment="center" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/button13"
        android:text="3"
        android:background="#ffff5830"
        android:onClick="appendCharacter"
        android:layout_above="@+id/button11"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/button14"
        android:text="2"
        android:background="#ffff5830"
        android:layout_above="@+id/button12"
        android:layout_toRightOf="@+id/button13"
        android:layout_toEndOf="@+id/button13"
        android:onClick="appendCharacter"
        android:textAlignment="center" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/button15"
        android:text="1"
        android:background="#ffff5830"
        android:layout_alignBottom="@+id/button14"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:onClick="appendCharacter"
        android:textAlignment="center" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/button17"
        android:text=")"
        android:background="#FF6600"
        android:onClick="appendCharacter"
        android:layout_above="@+id/button5"
        android:layout_alignRight="@+id/editText2"
        android:layout_alignEnd="@+id/editText2" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/button18"
        android:text="Cot"
        android:background="#FF6600"
        android:layout_below="@+id/button8"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/button19"
        android:text="tan"
        android:background="#FF6600"
        android:layout_alignTop="@+id/button18"
        android:layout_toLeftOf="@+id/button17"
        android:layout_toStartOf="@+id/button17" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/button20"
        android:text="sec"
        android:background="#FF6600"
        android:layout_above="@+id/button18"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/button21"
        android:text="cos"
        android:background="#FF6600"
        android:layout_alignTop="@+id/button20"
        android:layout_toLeftOf="@+id/button18"
        android:layout_toStartOf="@+id/button18" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/button22"
        android:text="csc"
        android:background="#FF6600"
        android:layout_alignBottom="@+id/button10"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true"
        android:onClick="appendCharacter" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/button23"
        android:text="sin"
        android:background="#FF6600"
        android:onClick="appendCharacter"
        android:layout_below="@+id/button24"
        android:layout_alignLeft="@+id/button19"
        android:layout_alignStart="@+id/button19" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/button24"
        android:text="Equation"
        android:background="#ffffcf23"
        android:layout_below="@+id/button26"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true"
        android:layout_alignLeft="@+id/button26"
        android:layout_alignStart="@+id/button26" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/button25"
        android:text="Units"
        android:background="#ffffcf23"
        android:layout_above="@+id/button14"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true"
        android:layout_toEndOf="@+id/button27"
        android:layout_toRightOf="@+id/button27" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/button26"
        android:text="Matrix"
        android:background="#ffffcf23"
        android:layout_above="@+id/button12"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true"
        android:layout_toRightOf="@+id/button27"
        android:layout_toEndOf="@+id/button27" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/button27"
        android:text="Settings"
        android:background="#ff33ff8e"
        android:layout_above="@+id/button14"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_toStartOf="@+id/button23"
        android:layout_toLeftOf="@+id/button23" />

    <EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/editText2"
        android:layout_above="@+id/button27"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true"
        android:textColor="#000000" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/button16"
        android:text="("
        android:background="#FF6600"
        android:onClick="appendCharacter"
        android:layout_alignTop="@+id/button3"
        android:layout_alignRight="@+id/button19"
        android:layout_alignEnd="@+id/button19" />

</RelativeLayout>

2 个答案:

答案 0 :(得分:0)

Backgroundtask内的Activity内部类是什么?如果是这样,您将不需要传递Context参数。相反,您可以使用*ActivityName*.this

除此之外,你的方法看起来很好。您可能想要构建构造函数public

答案 1 :(得分:0)

来自http://developer.android.com/reference/android/os/AsyncTask.html站点:“Params,执行时发送给任务的参数类型。”因此,当您使用Backgroundtask扩展AsyncTask类时,您可以说:

public class Backgroundtask extends AsyncTask<GenericTypeOfYourChoice, Void, String>

并将您的对象作为.execute()方法的第一个参数传递,例如:

new Backgroundtask().execute(instanceOfGenericTypeOfYourChoice);