Search code examples
androidtextviewmultiline

How do I do multiline with TextView


I have an Activity called MainActivity.java, with an activity_main.xml file. But I don't know how to create multi line textviews when I try to add the second line it puts both lines on the same line at the same space.

activity_main.xml textview

<TextView  android:id="@+id/txtView"
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="" 
    android:textSize="12sp"
    android:textColorLink="#FFFF00"
    android:textStyle="bold"
/
<TextView  android:id="@+id/txtView1"
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="" 
    android:textSize="12sp"
    android:textStyle="bold"
/>

MainActivity.java

public class MainMenuActivity extends Activity {
public final static String EXTRA_MESSAGE = "com.alatecinc.eema.MESSAGE";

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

    //Main Menu Links
    String str = "Directions";
    SpannableString content = new SpannableString(str);
    content.setSpan(new UnderlineSpan(), 0, str.length(), 0);
    final TextView txtView = (TextView) findViewById(R.id.txtView);
    txtView.setText(content);
    txtView.setTextColor(Color.BLUE);
    Linkify.addLinks(txtView, Linkify.ALL);     
    txtView.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            MainMenuActivity.this.startActivity(new Intent(MainMenuActivity.this, DirectionActivity.class));
        }
    });

    String mapStr = "Map View";
    SpannableString mapContent = new SpannableString(mapStr);
    mapContent.setSpan(new UnderlineSpan(), 0, mapStr.length(), 0);
    final TextView mapTxtView = (TextView) findViewById(R.id.txtView1);
    mapTxtView.setText(mapContent);
    mapTxtView.setTextColor(Color.BLUE);
    Linkify.addLinks(mapTxtView, Linkify.ALL);      
    mapTxtView.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            MainMenuActivity.this.startActivity(new Intent(MainMenuActivity.this, DirectionActivity.class));
        }
    });
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
              getMenuInflater().inflate(R.menu.main_menu, menu);
          return true;
     }

 }

So what I need is to have two lines one that says Directions and one that says mapview.


Solution

  • Try this:

    <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"
         tools:context=".yourActivity" >
    <TextView  android:id="@+id/txtView"
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:text="" 
        android:textSize="12sp"
        android:textColorLink="#FFFF00"
        android:textStyle="bold"/>
    <TextView  android:id="@+id/txtView1"
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:layout_below="@+id/txtView"
        android:text="" 
        android:textSize="12sp"
        android:textStyle="bold"/>
    </RelativeLayout>