我想隱藏/顯示從活動片段中的按鈕,但它給我下面的異常。從活動片段隱藏/顯示按鈕
android.view.ViewRootImpl $ CalledFromWrongThreadException:只有創建視圖層次結構的原始線程可以觸及其視圖。
首頁活動
public class HomeActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_home);
CategoryFragment frag=(CategoryFragment) activity.getSupportFragmentManager()
.findFragmentByTag("cat_frag");
Button newDesigns= (Button) frag.getView().findViewById(R.id.new_designs);
newDesigns.setVisibility(View.VISIBLE);
}
}
類別片段
public class CategoryFragment extends Fragment{
Button newDesigns;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.fragment_category, null);
newDesigns= (Button) v.findViewById(R.id.new_designs);
}
}
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#CCCCCC">
<TextView
android:id="@+id/list_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:background="@drawable/shape_logo_bg"
android:gravity="center"
android:padding="5dp"
android:textColor="@android:color/white"
android:textSize="18sp" />
<Button
android:id="@+id/new_designs"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/list_name"
android:background="@color/edit_button_color"
android:padding="10dp"
android:text="@string/new_designs"
android:textColor="@color/btn_text_color"
android:layout_centerHorizontal="true"
android:layout_marginTop="5dp"
android:visibility="gone"
/>
</RelativeLayout>
代碼太大,在此發佈。這就是爲什麼我只發佈代碼,我發現問題。
我能夠得到newDesigns BUTTON實例。我感到震驚的是,如果嘗試玩按鈕實例(VISIBLE/GONE),它會給我上面提到的異常。
幫助表示讚賞。
類似的問題已經被問了很多次做一個片段欣賞訪問!避免提出類似的問題! –
看到這個鏈接http://stackoverflow.com/questions/20124557/disable-button-in-fragment-from-main-activity –
[Android的可能的重複「只有創建視圖層次結構的原始線程可以觸及其視圖。 「錯誤在片段](http://stackoverflow.com/questions/18656813/android-only-the-original-thread-that-created-a-view-hierarchy-can-touch-its-vi) –