2016-03-09 56 views
0

在android中,如何在發生事件後呈現小部件。在這種情況下,事件可能是一個單選按鈕被按下。按下渲染按鈕後,屏幕上將呈現另一個小部件(如文本視圖或編輯框)。Android - 觸發事件後呈現小部件

依賴於事件的小部件當前寫在android layout xml文件中。代碼如下所示:

 case R.id.radio_buttonID: 
      if(Checked) { 

       EditText Enter_Info = (EditText) findViewById(R.id.Enter_boxID); 
       TextView Display_Text = (TextView) findViewById(R.id.Sign_ID); 
       percentSign.setText(R.string.Word); 
      } 
      break; 

以上是位於處理單選按鈕的函數中的switch語句的一部分。這樣做的正確方法是什麼?

+0

您想在運行時顯示一個視圖嗎?當點擊單選按鈕 –

+0

你想單選按鈕消失後檢查,然後會出現一個文本視圖,而不是?或者在檢查radioButton之後,一個textView出現在它的頂部/旁邊? –

+0

我並不完全確定你在運行時的一種觀點是什麼意思。但是無論如何,我想在單選按鈕被按下後只呈現一個小部件或視圖。 – Czar

回答

0

此示例代碼將爲您提供有關您計劃實現的內容的知識。您可以修改它以適應您的需要。

import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.CompoundButton; 
import android.widget.EditText; 
import android.widget.RadioButton; 

public class Main2Activity extends AppCompatActivity { 

private EditText Enter_Info; 
private RadioButton radioButton; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main2); 

    Enter_Info = (EditText) findViewById(R.id.Enter_boxID); 
    Enter_Info.setVisibility(View.GONE); 

    radioButton = (RadioButton)findViewById(R.id.my_radio_button); 
    radioButton.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { 
     @Override 
     public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { 
      if(isChecked){ 
       Enter_Info.setVisibility(View.VISIBLE); 
      }else{ 
       Enter_Info.setVisibility(View.GONE); 
      } 
     } 
    }); 

    } 
} 
+0

謝謝,這就是我一直在尋找的東西。 – Czar

+0

不客氣。如果它對你有幫助,你可以標記它或者上傳它。謝謝 – Inducesmile

0

要去去好了,並張貼我也做的代碼,您使用的是相同的onClick代碼模式下,如果曾經有人是有一個很難理解的setOnCheckedChangeListener模式。

MainActivity

public class MainActivity extends AppCompatActivity { 

    private TextView tvSample; 
    private RadioButton rbSample; 

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

     initViews(); 
    } 

    private void initViews() { 
     tvSample = (TextView) findViewById(R.id.tv_sample); 
    } 

    public void onClick(View v) { 
     switch (v.getId()) { 
      case R.id.rb_sample: 
       rbSample = (RadioButton) findViewById(v.getId()); 
       if (rbSample.isChecked()) { 
        tvSample.setVisibility(View.VISIBLE); 

       } 
       break; 
     } 
    } 
} 

activity_main.xml中

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

    <RadioButton 
     android:id="@+id/rb_sample" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:onClick="onClick" 
     android:padding="2dp" 
     android:text="Sample Radio Button" /> 

    <TextView 
     android:id="@+id/tv_sample" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:text="Sample Text" 
     android:visibility="gone" /> 

</LinearLayout> 

只需更換要在單選旁邊出現的視圖(TextView的/ EditText上) xml佈局,只需將VISIBILITY設置爲「無聲」,然後將其動態設置爲t在代碼中可見,如果它被檢查。如果您希望RadioButton在檢查後消失,只需將VISIBILITY設置爲按字母順序排列。有關查看元素的更多信息,您可以訪問官方Android開發者網站 - View | Android Developers