按钮单击时将textview添加到另一个活动中

时间:2015-01-04 06:38:34

标签: android android-linearlayout

当我按下另一个班级的按钮时,我试图在我的第一堂课中添加一个textview。我能够创建一个textview到同一个班级,我有我的按钮,但是我是无法在我希望它创建的类中创建该textview。我得到一个nullpoint异常

这是我的代码

public class popup extends Activity {

    private Button create,exit;
    private EditText newname;
    public LinearLayout mLayout;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.popup);

        exit = (Button)findViewById(R.id.exit);
        create = (Button)findViewById(R.id.create);
        newname = (EditText)findViewById(R.id.name1);
        mLayout = (LinearLayout)findViewById(R.id.linearLayout);

        exit.setOnClickListener(onClickListener);
        create.setOnClickListener(onClickListener);

    }

    private OnClickListener onClickListener = new OnClickListener() {
        @Override
        public void onClick(final View v) {
            switch(v.getId()){
                case R.id.exit:
                    finish();
                break;
                case R.id.create:
                    String name = newname.getText().toString();
                    mLayout.addView(createNewTextView(newname.getText().toString()));
                break;

            }
        }
    };

    private TextView createNewTextView(String text) {
        final LayoutParams lparams = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
        final TextView textView = new TextView(this);
        textView.setLayoutParams(lparams);
        textView.setText(text);
        return textView;
    }

}

布局(我有按钮的位置)

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"
    android:background="@color/tabTransparent"
    android:orientation="vertical" > 



    <TextView 

        android:id="@+id/head" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:textColor="@color/cream"
        android:text="Create a New Member"
        android:textSize="20dp" />


    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:padding="5dp"
        android:layout_marginTop="15dp"
        android:orientation="horizontal" >



        <TextView
            android:id="@+id/text1"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:layout_weight="0.25"
            android:textColor="@color/cream"
            android:text="Name :" />


        <EditText
                android:id="@+id/name1"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="0.75"
                android:inputType="text"
                android:enabled = "true"
                android:background="@drawable/edittext"
                android:hint="Enter New Name"
                android:ems="5" />

    </LinearLayout>


        <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:padding="5dp"
        android:layout_marginTop="15dp"
        android:orientation="horizontal" >


         <Button 
             android:id="@+id/create" 
            android:layout_width="match_parent" 
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="Create" /> 

         <Button 
             android:id="@+id/exit" 
            android:layout_width="match_parent" 
            android:layout_height="wrap_content"
             android:layout_weight="1"
            android:text="Exit" /> 

         </LinearLayout>

 </LinearLayout>

Layout2(应该创建我的textview)

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">

<LinearLayout 
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:background="@drawable/background"
    android:id="@+id/linearLayout"
    android:orientation="vertical" >



    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:padding="5dp"
        android:layout_marginTop="5dp"
        android:orientation="horizontal" >

        <CheckBox 
            android:id="@+id/checkbox_userG"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            />

        <TextView
            android:id="@+id/userG"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="0.25"
            android:textColor="@color/cream"
            android:text="@string/user_nameG" />

        <EditText
            android:id="@+id/txtG"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="0.75"
            android:inputType="number"
            android:enabled = "false"
            android:text="0"
            android:background="@drawable/edittext"
            android:hint="Rs."
            android:ems="10" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:padding="5dp"
        android:orientation="horizontal" >

        <CheckBox 
            android:id="@+id/checkbox_userU"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            />

        <TextView
            android:id="@+id/userU"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="0.25"
            android:textColor="@color/cream"
            android:text="@string/user_nameU" />

        <EditText
            android:id="@+id/txtU"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:inputType="number"
            android:enabled = "false"
            android:hint="Rs."
            android:text="0"
            android:background="@drawable/edittext"
            android:layout_weight="0.75"
            android:ems="10" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:padding="5dp"
        android:orientation="horizontal" >

        <CheckBox 
            android:id="@+id/checkbox_userP"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            />

        <TextView
            android:id="@+id/userP"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="0.25"
            android:textColor="@color/cream"
            android:text="@string/user_nameP" />

        <EditText
            android:id="@+id/txtP"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:background="@drawable/edittext"
            android:inputType="number"
            android:enabled = "false"
            android:text="0"
            android:layout_weight="0.75"
            android:hint="Rs."
            android:ems="10" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:padding="5dp"
        android:orientation="horizontal" >

        <CheckBox 
            android:id="@+id/checkbox_userR"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            />

        <TextView
            android:id="@+id/userR"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:layout_weight="0.25"
            android:textColor="@color/cream"
            android:text="@string/user_nameR" />


        <EditText
                android:id="@+id/txtR"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="0.75"
                android:inputType="number"
                android:enabled = "false"
                android:text="0"
                android:background="@drawable/edittext"
                android:hint="Rs."
                android:ems="5" />

    </LinearLayout>

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:padding="5dp"
        android:orientation="horizontal" >

        <CheckBox 
            android:id="@+id/checkbox_userA"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            />

        <TextView
            android:id="@+id/userA"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:layout_weight="0.25"
            android:textColor="@color/cream"
            android:text="@string/user_nameA" />


        <EditText
                android:id="@+id/txtA"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="0.75"
                android:enabled = "false"
                android:text="0"
                android:inputType="number"
                android:background="@drawable/edittext"
                android:hint="Rs."
                android:ems="5" />

    </LinearLayout>

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:padding="5dp"
        android:orientation="horizontal" >

        <CheckBox 
            android:id="@+id/checkbox_userCh"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            />

        <TextView
            android:id="@+id/userCh"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:layout_weight="0.25"
            android:textColor="@color/cream"
            android:text="@string/user_nameCh" />


        <EditText
                android:id="@+id/txtCh"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="0.75"
                android:inputType="number"
                android:enabled = "false"
                android:text="0"
                android:background="@drawable/edittext"
                android:hint="Rs."
                android:ems="5" />

    </LinearLayout>

            <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal" >

        <Button
                android:id="@+id/btnCal"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:layout_marginTop="20dp"
                android:layout_marginBottom="20dp"
                android:ems="5"
                android:text="@string/calculate"/>
               <!--  android:background="@drawable/mybutton" -->


        <Button
                android:id="@+id/btnReset"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:layout_marginTop="20dp"
                android:layout_marginBottom="20dp"
                android:ems="5"
                android:text="@string/Reset"/>
               <!--   android:background="@drawable/mybutton"-->



        </LinearLayout>

            <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:padding="5dp"
            android:orientation="horizontal" >

        <TextView
            android:id="@+id/totamount"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:layout_weight="0.25"
            android:textColor="@color/cream"
            android:text="@string/user_total" />

        <TextView
            android:id="@+id/totamountLabel"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:layout_weight="0.25"
            android:textSize="25dp"
            android:textColor="@color/yellow"
            android:hint="Rs.0" />

        </LinearLayout>

            <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:padding="5dp"
            android:orientation="horizontal" >

        <TextView
            android:id="@+id/amountper"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:layout_weight="0.25"
            android:textColor="@color/cream"
            android:text="@string/user_amount" />

        <TextView
            android:id="@+id/amountperLabel"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:layout_weight="0.25"
            android:textSize="25dp"
            android:textColor="@color/yellow"
            android:hint="Rs.0" />



        </LinearLayout>

            <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="20dp"
            android:orientation="horizontal" >

        <TextView
            android:id="@+id/nameG"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:layout_weight="0.25"
            android:paddingLeft="5dp"
            android:textColor="@color/cream"
            android:text="@string/user_amountG" />

        <TextView
            android:id="@+id/costperG"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:layout_weight="0.25"
            android:textSize="20dp"
            android:textColor="@color/cream"
            android:hint="Rs.0" />

        </LinearLayout>

            <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal" >

        <TextView
            android:id="@+id/nameU"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:layout_weight="0.25"
            android:paddingLeft="5dp"
            android:textColor="@color/cream"
            android:text="@string/user_amountU" />

        <TextView
            android:id="@+id/costperU"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:layout_weight="0.25"
            android:textSize="20dp"
            android:textColor="@color/cream"
            android:hint="Rs.0" />



        </LinearLayout>

            <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal" >

        <TextView
            android:id="@+id/nameP"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:layout_weight="0.25"
            android:paddingLeft="5dp"
            android:textColor="@color/cream"
            android:text="@string/user_amountP" />

        <TextView
            android:id="@+id/costperP"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:layout_weight="0.25"
            android:textSize="20dp"
            android:textColor="@color/cream"
            android:hint="Rs.0" />



        </LinearLayout>

            <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal" >

        <TextView
            android:id="@+id/nameR"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:layout_weight="0.25"
            android:paddingLeft="5dp"
            android:textColor="@color/cream"
            android:text="@string/user_amountR" />

        <TextView
            android:id="@+id/costperR"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:layout_weight="0.25"
            android:textSize="20dp"
            android:textColor="@color/cream"
            android:hint="Rs.0" />



        </LinearLayout>

            <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal" >

        <TextView
            android:id="@+id/nameA"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:layout_weight="0.25"
            android:paddingLeft="5dp"
            android:textColor="@color/cream"
            android:text="@string/user_amountA" />

        <TextView
            android:id="@+id/costperA"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:layout_weight="0.25"
            android:textSize="20dp"
            android:textColor="@color/cream"
            android:hint="Rs.0" />



        </LinearLayout>

            <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal" >

        <TextView
            android:id="@+id/nameCh"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:layout_weight="0.25"
            android:textColor="@color/cream"
            android:paddingLeft="5dp"
            android:text="@string/user_amountCh" />

        <TextView
            android:id="@+id/costperCh"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:layout_weight="0.25"
            android:textSize="20dp"
            android:textColor="@color/cream"
            android:hint="Rs.0" />

         </LinearLayout>

</LinearLayout>
</ScrollView>

1 个答案:

答案 0 :(得分:0)

像这样创建一个监听器接口

public interface AddTextViewListener {
    void onPopUpDestroyed(String text);
}

现在在你的弹出活动

public class popup extends Activity {

    private Button create,exit;
    private EditText newname;
    public LinearLayout mLayout;
    AddTextViewListener listener;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.popup);

        exit = (Button)findViewById(R.id.exit);
        create = (Button)findViewById(R.id.create);
        newname = (EditText)findViewById(R.id.name1);
        mLayout = (LinearLayout)findViewById(R.id.linearLayout);

        exit.setOnClickListener(onClickListener);
        create.setOnClickListener(onClickListener);
        listener = (AddTextViewListener)popup.this;

    }

    private OnClickListener onClickListener = new OnClickListener() {
        @Override
        public void onClick(final View v) {
            switch(v.getId()){
                case R.id.exit:
                    finish();
                break;
                case R.id.create:
                    String name = newname.getText().toString();
                     listener.onPopUpDestroyed(name);
                //    mLayout.addView(createNewTextView(newname.getText().toString()));
                break;

            }
        }
    };  
}

并在MainActivity中要添加此textView,如下所示

1)将此方法放入该活动

 private TextView createNewTextView(String text) {
            final LayoutParams lparams = new LayoutParams(LayoutParams.WRAP_CONTENT,                           LayoutParams.WRAP_CONTENT);
            final TextView textView = new TextView(this);
            textView.setLayoutParams(lparams);
            textView.setText(text);
            return textView;
        } 

2)在该活动中实现AddTextViewListener

public class MainActivity extends Activity implemets AddTextViewListener {

3)您将被要求覆盖接口方法,覆盖它

4)转到MainActivity中的这个重写方法

public void onPopUpDestroyed(String text)
    {
         // call createNewTextView(text);
         // add this textview to your desired layout
    }

注意:由于我没有您的完整代码,因此以下代码可能会有轻微的拼写错误,为此道歉