1

剛剛嘗試找出某些東西的東西,任何幫助讚賞。我有一個textview目前可點擊。我只需要將可點擊的按鈕背景添加到它。這是我的xml文件:下佈局如何添加一個可點擊的按鈕到當前可點擊的文本視圖

<LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:divider="@android:drawable/divider_horizontal" 
      android:orientation="vertical" 
      android:showDividers="middle" > 


      <TextView 
       android:id="@+id/mainscreen_option" 
       style="@style/TextView.MainscreenItem" 
       android:layout_width="match_parent" 
       android:layout_height="40dp" 
       android:layout_marginBottom="1dp" 
       android:clickable="true" 
       android:onClick="onMainscreenClicked" 
       android:text="@string/nav_option" 
        /> 
</LinearLayout> 

mainscreen.xml和其中i所定義的按鈕選擇器類代碼爲可繪製的文件夾下: bg_button.xml

<?xml version="1.0" encoding="utf-8"?> 


<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
<item android:state_focused="true" android:drawable="@drawable/menu_btn_active"/> 
<item android:state_pressed="true" android:drawable="@drawable/menu_btn_active" /> 
<item android:drawable="@drawable/menu_btn" /> 
</selector> 

和相應javacode爲TextView的是: mainscreennav.java

private void highlightMenuItem(){ 
TextView highlightedTextView = null; 
final String activeFragmentTitle = getArguments().getString(ACTIVE_MENU_ITEM); 
final Resources resources = Application.getAppResources(); 

if (resources.getString(R.string.nav_option_mainscreen).equals(FragmentTitle)) { 
      highlightedTextView = (TextView) getView().findViewById(R.id.nav_option_mainscreen); 
     } highlightedTextView.setTextColor(getResources().getColor(R.color.dark_orange)); 

    } 
} 

任何人都可以指導我,我怎麼CA n將這個文本視圖轉換爲一個按鈕,這兩個按鈕可以一起點擊,並且我可以將按鈕上的文本邊距設置爲特定的dp值。 在此先感謝! Justin

+0

當你完成任務後,你不能將某件事「轉化」爲另一件事,並且有兩件事情。無論你有一個'TextView',或者你有一個'Button'(將'TextView'轉換爲'Button'後)。因此,沒有可以「點擊」的「兩個」。 – CommonsWare

回答

2

編輯:

創建與您的代碼選擇XML,並在您繪製的文件夾。我將創建一個btn_custom.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
<item android:state_pressed="true" 
    android:drawable="@drawable/btn_active" /> 
<item android:state_focused="true" android:state_enabled="true" 
    android:drawable="@drawable/btn_active" /> 
<item 
    android:drawable="@drawable/btn_default" /> 
</selector> 

然後,在你的TextView:

<TextView android:text="MyButton" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_marginTop="20dp" 
    android:layout_marginLeft="20dp" 
    android:clickable="true" 
    android:background="@drawable/btn_custom" 
    android:padding="10dp"/> 

在填充,您調整按鈕填充。

的背景,把你選擇的名稱(在我的情況,@繪製/ btn_custom)

,你的效果已經開啓。

比,只需註冊一個onClickListener

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    TextView myTextButton = (TextView) findViewById(R.id.my_button_id); 
    myTextButton.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      Toast.makeText(MainActivity.this, "ButtonClick", 200).show(); 
     } 
    }); 
} 

PS:您可以使用您的onClick方法來代替:P

永遠記住:一個按鈕僅僅是一個 「病急亂投醫」 的TextView。

這是Button類的Android源代碼:

public class Button extends TextView { 
    public Button(Context context) { 
     this(context, null); 
    } 

    public Button(Context context, AttributeSet attrs) { 
     this(context, attrs, com.android.internal.R.attr.buttonStyle); 
    } 

    public Button(Context context, AttributeSet attrs, int defStyle) { 
     super(context, attrs, defStyle); 
    } 
} 

是的,它只是。

+0

你能解釋如何以編程方式爲textview顯示爲按鈕 –

+0

我將編輯我的答案 –

+0

回答編輯:) –

0

據我瞭解你的問題,你想要在按鈕前面有可點擊的textview? 如果是這樣創建RelativeLayout而不是LinearLayout,請將您的textview放置在按鈕前面(或根據您的需要以其他方式)。併爲他們分配onClick。

希望這可以幫助和享受您的工作。

相關問題