2014-02-27 19 views
0

我試圖更改AlertDialog消息的文本消息。成爲一個可以克服的消息。 這段代碼的文本是藍色的,但不是clikable更改文本消息,成爲可疑郵件

我想從文字中的電話,電子郵件和網站是clikable

  final SpannableString All = 
      new SpannableString(textmess + "\n\nTel :\n " + phone + "\n\nEmail : \n " + email + "\n\nAddress: \n " + address + "\n\nWeb site : \n " + site); 
      Linkify.addLinks(All, Linkify.ALL); 


      AlertDialog.Builder builder = new AlertDialog.Builder(new 
         ContextThemeWrapper(context, R.style.AlertDialogCustom) ); 

      builder.setTitle(title).setMessage(All); 

      builder.create(); 
      //not working 
      //TextView textView = (TextView) findViewById(android.R.id.message);  
      builder.show(); 
      GeoPoint1.close(); 
      db1.close(); 
+1

你爲什麼這樣做?最好爲此創建** Custom Dialog **。 –

回答

0

的對話框創建自定義佈局,還可以使用setMovementMethod得到它做

例:

AlertDialog.Builder dialog = new AlertDialog.Builder(context); 
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
View view = inflater.inflate(R.layout.dialog_custom, null); 
TextView dTitle = (TextView) view.findViewById(R.id.textDialogTitle); 
TextView dMessage = (TextView) view.findViewById(R.id.textDialogMessage); 
dMessage.setMovementMethod(LinkMovementMethod.getInstance()); 
dTitle.setText("Title"); 
dMessage.setText(ALL); 
dialog.setView(view);  
dialog.show(); 
0

這個例子將幫助您:

RES /佈局/ dialog.xml:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:background="#000000"> 
<TextView 
    android:id="@+id/tv_pc_forDialog" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentLeft="true" 
    android:layout_below="@+id/tv_pc_dialogTitle" 
    android:layout_marginLeft="5dp" 
    android:layout_marginRight="5dp" 
    android:layout_marginTop="20dp" 
    android:ems="10" 
    android:layout_centerHorizontal="true" 
    android:text="THIS IS A CLICKABLE MESSAGE" 
    android:singleLine="true" 
    android:textColor="#FFFFFF" > 
</TextView> 
<TextView 
    android:id="@+id/tv_pc_dialogTitle" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentTop="true" 
    android:layout_centerHorizontal="true" 
    android:layout_marginLeft="5dp" 
    android:text="SEARCH" 
    android:textColor="#FFFFFF" 
    android:textAppearance="?android:attr/textAppearanceLarge" /> 
<Button 
    android:id="@+id/bt_pc_goButton" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_below="@+id/tv_pc_forDialog" 
    android:layout_centerHorizontal="true" 
    android:layout_marginTop="14dp" 
    android:text="GO" 
    android:textColor="#FFFFFF" 
    android:textSize="25sp" /> </RelativeLayout> 

RES /佈局/ activity_main.xml中

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    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=".MainActivity" > 

    <Button 
     android:id="@+id/button1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentTop="true" 
     android:layout_centerHorizontal="true" 
     android:layout_marginTop="177dp" 
     android:text="Open Dialog" /> 

</RelativeLayout> 

MainActivity.java:

package com.bhavit.stackoverflow; 

import android.os.Bundle; 
import android.app.Activity; 
import android.app.Dialog; 
import android.graphics.Typeface; 
import android.view.Menu; 
import android.view.View; 
import android.view.Window; 
import android.widget.Button; 
import android.widget.TextView; 
import android.widget.Toast; 

public class MainActivity extends Activity { 

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

     Button openDialog = (Button) findViewById(R.id.button1); 
     openDialog.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View v) { 


       Dialog dialog = new Dialog(MainActivity.this); // here write the name of your activity in place of "YourActivity" 
       dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); 
       dialog.setContentView(R.layout.dialog); 
       TextView tv = (TextView)dialog.findViewById(R.id.tv_pc_dialogTitle); 
       Typeface tf = Typeface.createFromAsset(getAssets(), "fonts/GOTHIC.TTF"); // here GOTHIC.TTF is the font-file I have pasted in the asset/fonts folder in my project 
       tv.setTypeface(tf); // Set the typeface like this 

       Button bt = (Button) dialog.findViewById(R.id.bt_pc_goButton); 
       bt.setOnClickListener(new View.OnClickListener() { 

        @Override 
        public void onClick(View v) { 

         // Write here, what do you want to do on button click 

        } 
       }); 

       TextView tview = (TextView) dialog.findViewById(R.id.tv_pc_forDialog); 
       tview.setOnClickListener(new View.OnClickListener() { // set onClickListener to the textview 

        @Override 
        public void onClick(View v) { 

         // Write here, what do you want to do on Message click 
         Toast.makeText(getApplicationContext(), "You clicked on message", Toast.LENGTH_LONG).show(); 

        } 
       }); 

       dialog.show(); 


      } 
     }); 



    } 


} 

我在這裏做的是我做了一個定製的對話框,並在TextView上設置一個onClickListener作爲消息顯示。像這樣,你可以實現你的目標。

相關問題