2014-01-26 87 views
0

是否可以直接鏈接到文本鏈接的段落(也許使用「linkify」)?將文本鏈接到段落標題

例如,我的內容物與以下的表:

定義 體徵&症狀 治療 等 在相同的佈局我有文字或對應於這些項標題。我想點擊目錄中的文字跳轉到我內容中的特定標題:例如我點擊「跡象&症狀」,並直接跳到內容中標記爲「體徵和症狀」的部分。

謝謝。

<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:background="#ffffff" 
    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=".Atherosclerosis" 
    tools:ignore="UselessParent,ScrollViewCount" > 
<ScrollView 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" > 
    <RelativeLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content"> 
<LinearLayout 
    android:id="@+id/tablecontentlayout" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="vertical" 
    android:background="#FAFAD2" > 
    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textSize="16sp" 
     android:textStyle="bold" 
     android:textColor="#000000" 
     android:text="@string/table" /> 
    <TextView 
     android:id="@+id/definitionid" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textSize="15sp" 
     android:textStyle="bold" 
     android:textColor="#4682B4" 
     android:text="@string/Definition" /> 
    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textSize="15sp" 
     android:textStyle="bold" 
     android:textColor="#4682B4" 
     android:text="@string/RiskFactors" /> 
     <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textSize="15sp" 
     android:textStyle="bold" 
     android:textColor="#4682B4" 
     android:text="@string/Pathophysiology" /> 
     <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textSize="15sp" 
     android:textStyle="bold" 
     android:textColor="#4682B4" 
     android:text="@string/SignsandSymptoms" /> 
     <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textSize="15sp" 
     android:textStyle="bold" 
     android:textColor="#4682B4" 
     android:text="@string/Diagnosis" /> 
     <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textSize="15sp" 
     android:textStyle="bold" 
     android:textColor="#4682B4" 
     android:text="@string/Treatment" /> 
     <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textSize="15sp" 
     android:textStyle="bold" 
     android:textColor="#4682B4" 
     android:text="@string/Prevention" /> 
    </LinearLayout> 
    <LinearLayout 
     android:layout_width="match_parent" 
    android:layout_height="wrap_content" 

    android:layout_below="@+id/tablecontentlayout" 
    android:layout_marginTop="15dp" 
    android:orientation="vertical" > 
     <TextView 
      android:id="@+id/atherodefinition" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:text="@string/Definition" 
      android:background="#F5F5F5" 
      android:textColor="#483D8B" 
      android:textSize="15sp" 
      android:textStyle="bold"/> 
     <TextView 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:text="@string/atherosclerosisdefinition" 
      android:textSize="15sp"/> 
      <TextView 

      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:text="@string/RiskFactors" 
      android:background="#F5F5F5" 
      android:textColor="#483D8B" 
      android:textSize="15sp" 
      android:textStyle="bold"/> 
     <TextView 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:text="@string/Modifiable" 
      android:textStyle="bold" 
      android:textSize="15sp"/> 
     <TextView 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:text="@string/modifiableatherosclerosis" 
      android:textSize="15sp"/> 
     <TextView 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:text="@string/Nonmodifiable" 
      android:textStyle="bold" 
      android:textSize="15sp"/> 
     <TextView 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:text="@string/nonmodifiableatherosclerosis" 
      android:textSize="15sp"/> 
      <TextView 

      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:text="@string/Pathophysiology" 
      android:background="#F5F5F5" 
      android:textColor="#483D8B" 
      android:textSize="15sp" 
      android:textStyle="bold"/> 
     <TextView 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:text="@string/pathophysiologyatherosclerosis" 
      android:textSize="15sp"/> 
     <TextView 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:text="@string/SignsandSymptoms" 
      android:background="#F5F5F5" 
      android:textColor="#483D8B" 
      android:textSize="15sp" 
      android:textStyle="bold"/> 
     <TextView 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:text="@string/atherosclerosissignsandsymptoms" 
      android:textSize="15sp"/> 
     <TextView 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:text="@string/Diagnosis" 
      android:background="#F5F5F5" 
      android:textColor="#483D8B" 
      android:textSize="15sp" 
      android:textStyle="bold"/> 
     <TextView 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:text="@string/Diagnosisatherosclerosis" 
      android:textSize="15sp"/> 
     <TextView 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:text="@string/Treatment" 
      android:background="#F5F5F5" 
      android:textColor="#483D8B" 
      android:textSize="15sp" 
      android:textStyle="bold"/> 
     <TextView 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:text="@string/treatmentatherosclerosis" 
      android:textSize="15sp"/> 
     <TextView 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:text="@string/Prevention" 
      android:background="#F5F5F5" 
      android:textColor="#483D8B" 
      android:textSize="15sp" 
      android:textStyle="bold"/> 
     <TextView 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:text="@string/Preventionatherosclerosis" 
      android:textSize="15sp"/> 
    </LinearLayout> 
    </RelativeLayout> 
    </ScrollView> 

</RelativeLayout> 

公共類動脈粥樣硬化延伸活動{

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

     TextView tv = (TextView)findViewById(R.id.definitionid); 
     tv.setOnClickListener(new View.OnClickListener(){ 
      @Override 
      public void onClick(View v) { 


      } 

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

    } 

回答

0

我會使用滾動型的scrollTo方法。

在標題上設置一個OnClickListener,並在onClick方法中使用getTop method from View獲取段落頂部的X座標並向下滾動到該位置。

例如:

TextView signsAndSymptomsHeader; 
ScrollView scrollView; 

// do necessary initializations of Views, setup etc ... 
// then the following in your onCreate method 

signsAndSymptomsHeader.setOnClickListener(new View.OnClickListener(){ 
    @Override 
    onClick(View v){ 
     switch (v.getId()){ 
      case R.id.id_of_signs_symptoms_content : 
       scrollView.scrollTo(0,v.getTop()); 
       break; 
      // repeat for all headers. 
     } 
    } 
}); 
+0

不工作的me..any其他方式 – user2592807

+0

「不工作」 >>>爲什麼呢?任何錯誤,意外的行爲? – 2Dee

+0

這裏是我的java活動 – user2592807