复选框是否有条件?

时间:2016-09-17 07:28:14

标签: android android-activity checkbox

所以我有一个带有2个活动的Android应用程序 1 - 主要 2 - 秒

主要活动在RelativeLayout中有1个单一复选框我想知道如何使用复选框创建一个条件,如果选中复选框我想在第二个活动中使ImageView = VISIBLE和TextView = GONE反之亦然,如果它没有检查。

我曾尝试使用共享首选项和意图,但我一直在弄乱某个地方,其中复选框不重要或屏幕最终显示为空白。另一件事是在Main活动中我有一个具有onClick并且已经有意图的按钮。我只想知道如何使用第二个活动的复选框创建if条件。可悲的是,我会发布我的整个代码,但我已经把它弄得很糟糕,试图把它弄清楚它的所有地方并且没有任何意义了。

好吧我尝试了一些事情,尝试了一个已发布的答案,但至少我能够清理代码足以分享现在但是它非常糟糕并关闭应用程序,对不起任何奇怪的格式,对此新的< / p>

activity_main.xml中

    <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/rlay"
    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="sam.plsnyc.com.plsign.MainActivity">
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Company"
        android:id="@+id/textView"
        android:layout_alignParentTop="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_alignBottom="@+id/editText"
        android:textAlignment="center"
        android:textIsSelectable="false" />
    <EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/editText"
        android:layout_alignParentTop="true"
        android:layout_toRightOf="@+id/textView"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true" />
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Signage"
        android:id="@+id/textView2"
        android:layout_below="@+id/textView"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_alignBottom="@+id/editText2"
        android:textAlignment="center"
        android:textIsSelectable="false" />
    <EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/editText2"
        android:layout_below="@+id/editText"
        android:layout_alignLeft="@+id/editText"
        android:layout_alignStart="@+id/editText"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true" />
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Make Sign"
        android:id="@+id/button"
        android:layout_centerHorizontal="true"
        android:layout_below="@+id/editText2" />
    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/imgView"
        android:focusable="true"
        android:src="@drawable/logo"
        android:scaleType="fitXY"
        android:visibility="visible"
        android:layout_centerVertical="true"
        android:layout_centerHorizontal="true" />
    <CheckBox
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Use Logo"
        android:id="@+id/logobox"
        android:layout_below="@+id/textView2"
        android:layout_alignParentStart="true" />
</RelativeLayout>

activity_display_message.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_margin="0dp"
    android:singleLine="false"
    android:id="@+id/activity_display_message"
    tools:context=".MainActivity"
    android:focusableInTouchMode="false"
    android:focusable="true"
    android:nestedScrollingEnabled="false"
    android:orientation="vertical"
    android:weightSum="1">

    <ImageView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:scaleType="fitXY"
        android:src="@drawable/logo"
        android:visibility="gone"
        android:id="@+id/iV2" />

    <me.grantland.widget.AutofitLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
        <TextView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:maxLines="1"
            android:textStyle="bold"
            android:textSize="275sp"
            android:layout_weight=".5"
            android:textAlignment="center"
            android:text="LOGO"
            android:visibility="invisible"
            android:id="@+id/restxttop"
            android:elegantTextHeight="false" />
    </me.grantland.widget.AutofitLayout>

    <me.grantland.widget.AutofitLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
    <TextView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_weight=".5"
        android:textAlignment="center"
        android:maxLines="1"
        android:textSize="275sp"
        android:text="SIGNAGE"
        android:id="@+id/restxtbot"
        />
    </me.grantland.widget.AutofitLayout>
</LinearLayout>

MainActivity.java

public class MainActivity extends Activity {
    public final static String KEY_CHECKED = "chkd";
    CheckBox lbox;
    Button button;
    EditText etxt;
    EditText etxt2;
    String toptxt;
    String bottxt;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);{

            button = (Button) findViewById(R.id.button);
            button.setOnClickListener(new OnClickListener() {
                public void onClick(View v) {
                    etxt = (EditText) findViewById(R.id.editText);
                    toptxt = etxt.getText().toString();
                    etxt2 = (EditText) findViewById(R.id.editText2);
                    bottxt = etxt2.getText().toString();

                    Intent i = new Intent(v.getContext(), DisplayMessageActivity.class);
                    i.putExtra("text1", toptxt);
                    i.putExtra("text2", bottxt);
                    startActivity(i);

                    lbox = (CheckBox) findViewById(R.id.logobox);
                    Intent i2 = new Intent (MainActivity.this, DisplayMessageActivity.class);
                    i2.putExtra(KEY_CHECKED, lbox.isChecked());
                    startActivity(i2);
                }
            });
        }
    }
}

DisplayMessageActivity.java

public class DisplayMessageActivity extends Activity {
    TextView ttxt;
    TextView btxt;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        this.getWindow().requestFeature(Window.FEATURE_NO_TITLE);
        this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_display_message);

        btxt = (TextView) findViewById(R.id.restxtbot);
        btxt.setText(getIntent().getStringExtra("text2"));
        AutofitHelper.create(btxt);

        ImageView image = (ImageView) findViewById(R.id.iV2);

        Boolean chk = getIntent().getBooleanExtra(MainActivity.KEY_CHECKED, false);
        if (chk)
        {
            ttxt.setVisibility(View.GONE);
            image.setVisibility(View.VISIBLE);
        }else{
            ttxt.setVisibility(View.VISIBLE);
            ttxt = (TextView)findViewById(R.id.restxttop);
            ttxt.setText(getIntent().getStringExtra("text1"));
            AutofitHelper.create(ttxt);
            ttxt.setPaintFlags(ttxt.getPaintFlags()| Paint.UNDERLINE_TEXT_FLAG);
        }
    }
}

1 个答案:

答案 0 :(得分:0)

如果从main打开第二个活动,你可以将isChecked值放在intent中,在这个简单的情况下使值静态