Вы должны объявить TextView в качестве переменной-члена для вашего класса и получить ссылку на эту точку зрения в onCreateView
как:
public class Tab1 extends Fragment {
// your TextView member variable
private TextView mTextView;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, @Nullable Bundle savedInstanceState) {
View v =inflater.inflate(R.layout.tab_1, container, false);
mTextView = (TextView) v.findViewById(R.id.my_text_view);
return v;
}
// It is safe to access the views here, not in onCreate since it is called before onCreateView
@Override
public void onActivityCreated(Bundle savedInstanceState){
super.onActivityCreated(savedInstanceState);
mTextView.setText("Hello, World!");
}
}
Для справки на Fragment lifecycle
фрагменты ограниченный или сильно отличающийся от традиционных видов деятельности?
Отрывок имеет свой жизненный цикл, как у какого-либо процесса, но это зависит от жизненного цикла своей родительской деятельности, поэтому ответить на ваш вопрос, они не очень отличаются, это просто хорошая практика для модульности кода.
Нужно ли делать бесконечные настройки для получения загрузки списка?
Немного непонятно, что вы подразумеваете под постоянными настройками, но загрузка динамического ListView очень проста в Android.
Для примера:
использованием fragment_one.xml у нас есть только FrameLayout
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/fl_list_container"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
И код:
public class Tab1 extends Fragment {
// your FrameLayout member variable
private FrameLayout mFlParent;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, @Nullable Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.fragment_one, container, false);
mFlParent = (FrameLayout) v.findViewById(R.id.fl_list_container);
return v;
}
// It is safe to access the views here, not in onCreate since it is called before onCreateView
@Override
public void onActivityCreated(Bundle savedInstanceState){
super.onActivityCreated(savedInstanceState);
// Create a new list, adapter and add a item click listener
ListView myList = new ListView(context); // context needed
myList.setAdapter(new ArrayAdapter<String>(context, android.R.id.simple_list_item_1, new String []{"Item 1", "Item 2", "Item 3", "Item 4"}));
myList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
//... handle clicks on list items as usual
}
});
// add the view to the FrameLayout
mFlParent.addView(myList); // may want to call mFlParent.removeAllViews(); before adding just to be safe
}
}
Удачи и счастливого кодирования.
Благодарим за подробное описание. Я хорошо знаком с listviews, но поскольку текстовое представление не работает, я думал, что не будет listviews, и у меня не было нервов, чтобы сделать это альтернативным/сложным способом. – inrob