Java 如何在android studio中更改另一个片段中片段基的输出
我为一个应用程序编写了这段代码,它假设给出一个身体部位列表,如手臂和腿,在第一个片段中单击一个,运动列表应显示在第二个片段中。如果用户按下另一个选项,该列表假设会更改,是否存在问题?它会自动显示第一个选项,但不会更改在用户按下另一个选项后,请告诉我如何更改第二个片段中的内容 主类Java 如何在android studio中更改另一个片段中片段基的输出,java,android,android-fragments,Java,Android,Android Fragments,我为一个应用程序编写了这段代码,它假设给出一个身体部位列表,如手臂和腿,在第一个片段中单击一个,运动列表应显示在第二个片段中。如果用户按下另一个选项,该列表假设会更改,是否存在问题?它会自动显示第一个选项,但不会更改在用户按下另一个选项后,请告诉我如何更改第二个片段中的内容 主类 public class MainActivity extends Activity implements WorkoutListFragment.WorkoutListener { @Override pr
public class MainActivity extends Activity
implements WorkoutListFragment.WorkoutListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
WorkoutDetailFragment frag = (WorkoutDetailFragment)
getFragmentManager().findFragmentById(R.id.detail_frag);
frag.setWorkoutId(1);
}
public void itemClicked(long id){
int itemSelected = (int)id;
String message = String.format("ID selected %d", itemSelected);
Log.v("DEBUG", message);
}
}
public class Workout {
private String name;
private String description;
public Workout(String name, String description) {
this.name = name;
this.description = description;
}
public static final Workout[] workouts= {
new Workout("Chest Workout", "3 Bench Press\n10Flys\nWide Dips"),
new Workout("Legs", "5 Squats\n3x12 Leg Curl\n3x10 Leg Press"),
new Workout("Back", "10 Pullups\n 3x8 Dumbell Rows"),
new Workout("Arms", "10 Biceps Curls\n10 Dips\n3x10 Preacher Curls")
};
public String getName() {
return name;
}
public String getDescription() {
return description;
}
@Override
public String toString() {
return this.name;
}
}
public class WorkoutDetailFragment extends Fragment {
private final String TAG = "DEBUG";
private long workoutId;
public WorkoutDetailFragment() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
return inflater.inflate(R.layout.fragment_workout_detail, container, false);
}
@Override
public void onStart(){
super.onStart();
View view = getView();
if(view !=null){
TextView title = (TextView)view.findViewById(R.id.TextTitle);
Workout workout = Workout.workouts[(int)workoutId];
title.setText(workout.getName());
Log.v(TAG, workout.getName());
TextView description = (TextView)view.findViewById(R.id.TextDescription);
description.setText(workout.getDescription());
Log.v(TAG, workout.getDescription());
}
}
public void setWorkoutId(long id){
this.workoutId = id;
}
}
public class WorkoutListFragment extends ListFragment {
static interface WorkoutListener {
void itemClicked(long id);
}
private WorkoutListener listener;
public WorkoutListFragment() {
// Required empty public constructor
}
@Override
public void onAttach(Activity activity){
super.onAttach(activity);
this.listener = (WorkoutListener)activity;
}
@Override
public void onListItemClick(ListView l, View v, int position, long id){
if (listener != null){
listener.itemClicked(id);
}
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// create a string array with workout names
String[] names = new String [Workout.workouts.length];
for (int i=0; i < names.length; i++){
names[i] = Workout.workouts[i].getName();
}
// Create an array adapter
ArrayAdapter<String> adapter = new ArrayAdapter<String>(
inflater.getContext(),
android.R.layout.simple_list_item_1,
names);
// bind the adapter to the control
setListAdapter(adapter);
// this call gives you the default layout view for the
// ListFragment
return super.onCreateView(inflater, container, savedInstanceState);
}
}
二等舱
public class MainActivity extends Activity
implements WorkoutListFragment.WorkoutListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
WorkoutDetailFragment frag = (WorkoutDetailFragment)
getFragmentManager().findFragmentById(R.id.detail_frag);
frag.setWorkoutId(1);
}
public void itemClicked(long id){
int itemSelected = (int)id;
String message = String.format("ID selected %d", itemSelected);
Log.v("DEBUG", message);
}
}
public class Workout {
private String name;
private String description;
public Workout(String name, String description) {
this.name = name;
this.description = description;
}
public static final Workout[] workouts= {
new Workout("Chest Workout", "3 Bench Press\n10Flys\nWide Dips"),
new Workout("Legs", "5 Squats\n3x12 Leg Curl\n3x10 Leg Press"),
new Workout("Back", "10 Pullups\n 3x8 Dumbell Rows"),
new Workout("Arms", "10 Biceps Curls\n10 Dips\n3x10 Preacher Curls")
};
public String getName() {
return name;
}
public String getDescription() {
return description;
}
@Override
public String toString() {
return this.name;
}
}
public class WorkoutDetailFragment extends Fragment {
private final String TAG = "DEBUG";
private long workoutId;
public WorkoutDetailFragment() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
return inflater.inflate(R.layout.fragment_workout_detail, container, false);
}
@Override
public void onStart(){
super.onStart();
View view = getView();
if(view !=null){
TextView title = (TextView)view.findViewById(R.id.TextTitle);
Workout workout = Workout.workouts[(int)workoutId];
title.setText(workout.getName());
Log.v(TAG, workout.getName());
TextView description = (TextView)view.findViewById(R.id.TextDescription);
description.setText(workout.getDescription());
Log.v(TAG, workout.getDescription());
}
}
public void setWorkoutId(long id){
this.workoutId = id;
}
}
public class WorkoutListFragment extends ListFragment {
static interface WorkoutListener {
void itemClicked(long id);
}
private WorkoutListener listener;
public WorkoutListFragment() {
// Required empty public constructor
}
@Override
public void onAttach(Activity activity){
super.onAttach(activity);
this.listener = (WorkoutListener)activity;
}
@Override
public void onListItemClick(ListView l, View v, int position, long id){
if (listener != null){
listener.itemClicked(id);
}
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// create a string array with workout names
String[] names = new String [Workout.workouts.length];
for (int i=0; i < names.length; i++){
names[i] = Workout.workouts[i].getName();
}
// Create an array adapter
ArrayAdapter<String> adapter = new ArrayAdapter<String>(
inflater.getContext(),
android.R.layout.simple_list_item_1,
names);
// bind the adapter to the control
setListAdapter(adapter);
// this call gives you the default layout view for the
// ListFragment
return super.onCreateView(inflater, container, savedInstanceState);
}
}
三等舱
public class MainActivity extends Activity
implements WorkoutListFragment.WorkoutListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
WorkoutDetailFragment frag = (WorkoutDetailFragment)
getFragmentManager().findFragmentById(R.id.detail_frag);
frag.setWorkoutId(1);
}
public void itemClicked(long id){
int itemSelected = (int)id;
String message = String.format("ID selected %d", itemSelected);
Log.v("DEBUG", message);
}
}
public class Workout {
private String name;
private String description;
public Workout(String name, String description) {
this.name = name;
this.description = description;
}
public static final Workout[] workouts= {
new Workout("Chest Workout", "3 Bench Press\n10Flys\nWide Dips"),
new Workout("Legs", "5 Squats\n3x12 Leg Curl\n3x10 Leg Press"),
new Workout("Back", "10 Pullups\n 3x8 Dumbell Rows"),
new Workout("Arms", "10 Biceps Curls\n10 Dips\n3x10 Preacher Curls")
};
public String getName() {
return name;
}
public String getDescription() {
return description;
}
@Override
public String toString() {
return this.name;
}
}
public class WorkoutDetailFragment extends Fragment {
private final String TAG = "DEBUG";
private long workoutId;
public WorkoutDetailFragment() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
return inflater.inflate(R.layout.fragment_workout_detail, container, false);
}
@Override
public void onStart(){
super.onStart();
View view = getView();
if(view !=null){
TextView title = (TextView)view.findViewById(R.id.TextTitle);
Workout workout = Workout.workouts[(int)workoutId];
title.setText(workout.getName());
Log.v(TAG, workout.getName());
TextView description = (TextView)view.findViewById(R.id.TextDescription);
description.setText(workout.getDescription());
Log.v(TAG, workout.getDescription());
}
}
public void setWorkoutId(long id){
this.workoutId = id;
}
}
public class WorkoutListFragment extends ListFragment {
static interface WorkoutListener {
void itemClicked(long id);
}
private WorkoutListener listener;
public WorkoutListFragment() {
// Required empty public constructor
}
@Override
public void onAttach(Activity activity){
super.onAttach(activity);
this.listener = (WorkoutListener)activity;
}
@Override
public void onListItemClick(ListView l, View v, int position, long id){
if (listener != null){
listener.itemClicked(id);
}
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// create a string array with workout names
String[] names = new String [Workout.workouts.length];
for (int i=0; i < names.length; i++){
names[i] = Workout.workouts[i].getName();
}
// Create an array adapter
ArrayAdapter<String> adapter = new ArrayAdapter<String>(
inflater.getContext(),
android.R.layout.simple_list_item_1,
names);
// bind the adapter to the control
setListAdapter(adapter);
// this call gives you the default layout view for the
// ListFragment
return super.onCreateView(inflater, container, savedInstanceState);
}
}
四等舱
public class MainActivity extends Activity
implements WorkoutListFragment.WorkoutListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
WorkoutDetailFragment frag = (WorkoutDetailFragment)
getFragmentManager().findFragmentById(R.id.detail_frag);
frag.setWorkoutId(1);
}
public void itemClicked(long id){
int itemSelected = (int)id;
String message = String.format("ID selected %d", itemSelected);
Log.v("DEBUG", message);
}
}
public class Workout {
private String name;
private String description;
public Workout(String name, String description) {
this.name = name;
this.description = description;
}
public static final Workout[] workouts= {
new Workout("Chest Workout", "3 Bench Press\n10Flys\nWide Dips"),
new Workout("Legs", "5 Squats\n3x12 Leg Curl\n3x10 Leg Press"),
new Workout("Back", "10 Pullups\n 3x8 Dumbell Rows"),
new Workout("Arms", "10 Biceps Curls\n10 Dips\n3x10 Preacher Curls")
};
public String getName() {
return name;
}
public String getDescription() {
return description;
}
@Override
public String toString() {
return this.name;
}
}
public class WorkoutDetailFragment extends Fragment {
private final String TAG = "DEBUG";
private long workoutId;
public WorkoutDetailFragment() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
return inflater.inflate(R.layout.fragment_workout_detail, container, false);
}
@Override
public void onStart(){
super.onStart();
View view = getView();
if(view !=null){
TextView title = (TextView)view.findViewById(R.id.TextTitle);
Workout workout = Workout.workouts[(int)workoutId];
title.setText(workout.getName());
Log.v(TAG, workout.getName());
TextView description = (TextView)view.findViewById(R.id.TextDescription);
description.setText(workout.getDescription());
Log.v(TAG, workout.getDescription());
}
}
public void setWorkoutId(long id){
this.workoutId = id;
}
}
public class WorkoutListFragment extends ListFragment {
static interface WorkoutListener {
void itemClicked(long id);
}
private WorkoutListener listener;
public WorkoutListFragment() {
// Required empty public constructor
}
@Override
public void onAttach(Activity activity){
super.onAttach(activity);
this.listener = (WorkoutListener)activity;
}
@Override
public void onListItemClick(ListView l, View v, int position, long id){
if (listener != null){
listener.itemClicked(id);
}
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// create a string array with workout names
String[] names = new String [Workout.workouts.length];
for (int i=0; i < names.length; i++){
names[i] = Workout.workouts[i].getName();
}
// Create an array adapter
ArrayAdapter<String> adapter = new ArrayAdapter<String>(
inflater.getContext(),
android.R.layout.simple_list_item_1,
names);
// bind the adapter to the control
setListAdapter(adapter);
// this call gives you the default layout view for the
// ListFragment
return super.onCreateView(inflater, container, savedInstanceState);
}
}
公共类WorkoutListFragment扩展ListFragment{
静态接口监听器{
已单击的无效项(长id);
}
私人监听;
公共工作列表片段(){
//必需的空公共构造函数
}
@凌驾
公共事务主任(活动){
超级转速计(活动);
this.listener=(WorkoutListener)活动;
}
@凌驾
public void onListItemClick(列表视图l、视图v、整数位置、长id){
if(侦听器!=null){
listener.itemClicked(id);
}
}
@凌驾
创建视图上的公共视图(布局、充气机、视图组容器、,
Bundle savedInstanceState){
//使用训练名称创建字符串数组
String[]name=新字符串[Workout.workouts.length];
for(int i=0;i
在onClickListener或任何侦听单击的内容中,您应该在活动中写入以下内容:
FragmentManager fragementManager = getFragmentManager();
fragementManager.beginTransaction().replace(R.id.layout, new NextFragment()).commit();
在本例中,R.id.layout应该是放置片段的布局的id。NextFragment应该是要显示的片段的类。
希望这有帮助!:) 我在第一节课上点击了一个项目,你需要用你想要的任何片段来替换它。谢谢大家,完成后对我有很大帮助。谢谢,没问题。记住选择它作为正确答案。