2014-02-21 89 views
0

如何获取我的活动中片段的元素并更改其值?android从片段获取imageview

喜有此片段...

public class EventDetail extends Fragment { 


@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) { 

    View v = inflater.inflate(R.layout.event_detail, container, false); 

    return v; 

} 

} 

fragment_layout ...

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

    <ImageView 
     android:id="@+id/imgEventCover" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentRight="true" 
     android:layout_alignParentTop="true" 
     android:adjustViewBounds="true" 
     android:src="@drawable/imagemapoio2" /> 

    <TextView 
     android:id="@+id/txtEventDetail" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignLeft="@+id/txtEventInfo" 
     android:layout_centerVertical="true" 
     android:text="LXFACTORY | 2km" 
     android:textColor="@android:color/black" /> 

    <TextView 
     android:id="@+id/txtEventInfo" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/txtEventDetail" 
     android:layout_centerHorizontal="true" 
     android:text="Playground present Drum&amp;Bass in the Factory" 
     android:textColor="@color/dk" /> 

    <ImageView 
     android:id="@+id/imgTiming" 
     android:layout_width="60dp" 
     android:layout_height="60dp" 
     android:layout_below="@+id/txtEventTime" 
     android:layout_centerHorizontal="true" 
     android:layout_marginTop="25dp" 
     android:src="@drawable/yellowtiming" /> 

    <TextView 
     android:id="@+id/txtEventTime" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignLeft="@+id/txtEventDetail" 
     android:layout_below="@+id/txtEventInfo" 
     android:layout_marginTop="5dp" 
     android:text="22.00H - 04.30H" 
     android:textColor="@color/dk" 
     android:textSize="10dp" /> 

</RelativeLayout> 

主要活动......(法改值)

public void initializeEvent() { 
    Fragment fr = new EventDetail(); 
    FragmentManager fm = getSupportFragmentManager(); 
    FragmentTransaction fragmentTransaction = fm.beginTransaction(); 
    View v = fr.getView(); 

    //get fragment elements. 

    fragmentTransaction.replace(R.id.fragment_menu, fr); 
    fragmentTransaction.commit(); 
} 

我怎么能从这个片段获取textviews和imageviews来设置他们的图像和文本?

+0

它是片段的布局,您应该从片段内设置它。你想从活动中完成的特殊原因? – Sharj

+0

我在我的活动中有一个列表,当我点击一个项目时,它会显示一些关于该项目的数据片段。所以这些数据应该是动态的。 –

回答

1

这样的事情?

((EventDetail)getActivity()).function(data); 
+0

我认为这适用于片段活动 –

+0

试试这个然后http://stackoverflow.com/questions/18486952/get-id-of-textview-in-fragment-from-fragmentactivity-in-viewpager – morty346

0

你不应该直接通过Activity或Fragment方法设置任何值。

从活动到碎片,

  • 你应该在其中您可以通过setArguments(bundle)发送 捆添加适当的值,并在片段可以在以后通过

从片段retrive这些值活动,

  • 您应该创建一个接口并使用其方法来传递从FragmentActivity的值