2017-02-16 159 views
0

我正在製作一個顯示聯繫人及其詳細信息(例如電話號碼,電子郵件等)的應用程序,並將它們顯示在ListView中。我想在每行的末尾添加可點擊的按鈕,例如,我可以點擊電話號碼旁邊的按鈕並打開存儲在撥號程序TextView中的字符串,我該怎麼做?我的.xml文件如下:如何在每個TextView末尾添加可點擊的按鈕?

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

<ImageView android:id="@+id/imgAvatar" 
    android:layout_width="70dip" 
    android:layout_height="70dip" 
    android:scaleType="fitCenter" 
    android:src="@mipmap/ic_launcher"/> 

<LinearLayout android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content"> 

    <TextView android:id="@+id/tvName" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:textStyle="bold"/> 

    <TextView android:id="@+id/tvPhone" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content"/> 

    <TextView android:id="@+id/tvEmail" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content"/> 

    <TextView android:id="@+id/tvLocation" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content"/> 
</LinearLayout> 

</LinearLayout> 
+0

請詳細說明!到目前爲止你做了什麼?您需要實現自定義列表視圖才能實現此目的! –

+0

我有一個適配器類,它擴展了BaseAdapter和一個帶有構造函數的類,用於在TextView中存儲數據。我也有一個顯示列表類,它實現了ListView來顯示存儲在目錄中的數據。該目錄顯示正常,我只是想添加功能,以便當我點擊一個按鈕時,例如電話或電子郵件的TextView,它打開撥號/電子郵件等 – Spartan123

+0

我的建議:而不是按鈕的點擊,使用onclick的textview。當點擊列表行時。使用該位置獲取電話號碼並將其作爲URI將其傳遞給ACTION_DIAL參數。 –

回答

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

<ImageView android:id="@+id/imgAvatar" 
    android:layout_width="70dip" 
    android:layout_height="70dip" 
    android:scaleType="fitCenter" 
    android:src="@mipmap/ic_launcher"/> 

<LinearLayout android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content"> 

<LinearLayout android:orientation="horizontal" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content"> 
    <TextView android:id="@+id/tvName" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:textStyle="bold"/> 
    <ImageView android:id="@+id/yourClickableImage" 
    android:layout_width="70dip" 
    android:layout_height="70dip" 
    android:scaleType="fitCenter" 
    android:src="@drawable/yourClickableImage"/> 

</LinearLayout> 

    <LinearLayout android:orientation="horizontal" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content"> 
    <TextView android:id="@+id/tvPhone" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:textStyle="bold"/> 
    <ImageView android:id="@+id/yourClickableImage" 
    android:layout_width="70dip" 
    android:layout_height="70dip" 
    android:scaleType="fitCenter" 
    android:src="@drawable/yourClickableImage"/> 

</LinearLayout> 


    <LinearLayout android:orientation="horizontal" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content"> 
    <TextView android:id="@+id/tvEmail" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:textStyle="bold"/> 
    <ImageView android:id="@+id/yourClickableImage" 
    android:layout_width="70dip" 
    android:layout_height="70dip" 
    android:scaleType="fitCenter" 
    android:src="@drawable/yourClickableImage"/> 

</LinearLayout> 


    <LinearLayout android:orientation="horizontal" 
    android:layout_width="fill_parent"`enter code here` 
    android:layout_height="wrap_content"> 
    <TextView android:id="@+id/tvLoation" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:textStyle="bold"/> 
    <ImageView android:id="@+id/yourClickableImage" 
    android:layout_width="70dip" 
    android:layout_height="70dip" 
    android:scaleType="fitCenter" 
    android:src="@drawable/yourClickableImage"/> 

</LinearLayout> 


</LinearLayout> 

</LinearLayout> 

讓我知道這是你想要的方式?告訴我,我會爲你編輯:)。

+0

嗨,您提供的代碼不會顯示很多語法錯誤,不幸的是。 – Spartan123

+0

*正在顯示.... – Spartan123

+0

現在嘗試我已經做了一些更改。它應該工作,否則給我錯誤。 –

1

XML文件:

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

    <ImageView android:id="@+id/imgAvatar" 
     android:layout_width="70dip" 
     android:layout_height="70dip" 
     android:scaleType="fitCenter" 
     android:src="@mipmap/ic_launcher"/> 

    <LinearLayout android:orientation="vertical" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content"> 

     <TextView android:id="@+id/tvName" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:textStyle="bold"/> 

     <TextView android:id="@+id/tvPhone" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content"/> 

     <TextView android:id="@+id/tvEmail" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content"/> 

     <TextView android:id="@+id/tvLocation" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content"/> 
    </LinearLayout> 
//add button where you want and type the code: android:onClick="functionName" 


    </LinearLayout> 

的Java文件:

public class MainActivity extends AppCompatActivity { 

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

     public void functionName(View view){ 
//set of codes you want to perform 

} 
    } 

} 
1

ü可以在你的java文件定義按鈕的點擊功能!

插件代碼在XML文件中: -

<Button 
     android:id="@+id/bun" 
     android:text="click" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" /> 

的java文件:

public class MainActivity extends AppCompatActivity { 

private Button b; 

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

     b = (Button) view.findViewById(R.id.bun); 
     b.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 

//set codes u want to perform 
       } 
      } 
     }); 
    } 

} 
+0

嗨,謝謝你的幫助,如果可能的話,我想讓按鈕對齊到TextView字段的右側,我該怎麼做? – Spartan123

+0

看看我的新答案,下面對齊按鈕的權利! –

1

這裏是你的XML文件,該文件顯示在您的TextView 右側的按鈕,你想要的! :)

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

    <ImageView 
     android:id="@+id/imgAvatar" 
     android:layout_width="70dip" 
     android:layout_height="70dip" 
     android:scaleType="fitCenter" 
     android:src="@mipmap/ic_launcher" /> 

    <RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content"> 

     <LinearLayout 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_marginLeft="10dp" 
      android:orientation="vertical"> 

      <TextView 
       android:id="@+id/tvName" 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:text="asdffgh" 
       android:textStyle="bold" /> 

      <TextView 
       android:id="@+id/tvPhone" 
       android:layout_width="fill_parent" 

       android:layout_height="wrap_content" 
       android:text="asdffgh" /> 

      <TextView 
       android:id="@+id/tvEmail" 
       android:layout_width="fill_parent" 

       android:layout_height="wrap_content" 
       android:text="asdffgh" /> 

      <TextView 
       android:id="@+id/tvLocation" 
       android:layout_width="fill_parent" 

       android:layout_height="wrap_content" 
       android:text="asdffgh" /> 
     </LinearLayout> 

     <Button 
      android:id="@+id/bun" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentEnd="true" 
      android:layout_alignParentRight="true" 
      android:layout_alignParentTop="true" 
      android:text="click" /> 
    </RelativeLayout> 
</LinearLayout> 
相關問題