2013-05-30 46 views
1

我想獲得一個文本視圖鏈接到一個網站,但它不會在android中找到xml中的id。任何幫助都會很棒。下面的代碼不會找到R.Id.在片段

它不會找到R.id.textviewlink

public class Fragment_2 extends Fragment{ 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){ 

     return inflater.inflate(R.layout.fragment_2, null); 

     TextView t2 = (TextView) getView().findViewById(R.id.textviewlink); 
     t2.setMovementMethod(LinkMovementMethod.getInstance()); 
    } 
} 

XML

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:orientation="vertical" 
android:paddingTop="10dip" 
android:paddingLeft="10dip" 
android:paddingRight="10dip" 
android:background="@drawable/backgroundw"> 

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

      <TextView 
    android:id="@+id/textviewlink" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:gravity="center" 
    android:text="Free PDF Download" 
    android:linksClickable="true"/> 

    </LinearLayout> 
    </ScrollView> 
    </RelativeLayout> 

回答

3

那是因爲你已經找到視圖項之前回到您的充氣佈局。有兩種選擇。

首先,充氣()方法總是需要三個參數:

inflater.inflate(R.layout.file_name, container, false); 

將下面的onStart

TextView t2 = (TextView) getView().findViewById(R.id.textviewlink); 
t2.setMovementMethod(LinkMovementMethod.getInstance()); 

或使用此:

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){ 
    View v = inflater.inflate(R.layout.fragment_2, container, false); //don't forget the third argument here 
    TextView t2 = (TextView) v.findViewById(R.id.textviewlink); 
    t2.setMovementMethod(LinkMovementMethod.getInstance()); 

    return v; 
} 
+0

仍然不用兩種方法顯示,但是你的意思是「不要忘記第三個參數」 – user2407147

+0

公共類Fragment_2延伸片段{ \t \t \t 公衆查看onCreateView(LayoutInflater充氣,ViewGroup中的容器中,捆綁savedInstanceState){ \t返回inflater.inflate(R.layout.fragment_2,NULL); \t \t} \t公共無效調用onStart(){ \t TextView的T2 =(TextView的)getView()findViewById(R.id.textviewlink)。 \t t2.setMovementMethod(LinkMovementMethod.getInstance()); } } – user2407147

+0

「eturn inflater.inflate(R.layout.fragment_2,null);」 inflate()方法需要三個參數,佈局xml,ViewGroup和布爾attachToRoot。我會更新我的答案。 – TronicZomB