Android 我的主片段代码没有被执行
我正在使用android studio编写一个android应用程序。到目前为止,我已经创建了一个选项卡式活动作为我的主要活动,另一个活动将在我的主要选项卡式活动中的一个选项卡上单击按钮打开。问题是我尝试了几种方法来实现这一点,但似乎我的Android 我的主片段代码没有被执行,android,android-fragments,Android,Android Fragments,我正在使用android studio编写一个android应用程序。到目前为止,我已经创建了一个选项卡式活动作为我的主要活动,另一个活动将在我的主要选项卡式活动中的一个选项卡上单击按钮打开。问题是我尝试了几种方法来实现这一点,但似乎我的public视图onCreateView中的代码根本没有执行。这是我试图运行的代码: public View onCreateView(LayoutInflater inflater, ViewGroup container,
public视图onCreateView
中的代码根本没有执行。这是我试图运行的代码:
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_main, container, false);
Button mainSignInButton = (Button) view.findViewById(R.id.mainSignInButton);
mainSignInButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i = new Intent(getActivity() ,LoginActivity.class);
startActivity(i);
}
});
return view;
}
我还尝试向这段代码中添加一条简单的toast消息,以查看它是否得到执行,但我没有看到toast也会弹出…首先,委托给
活动的startActivity()
。请尝试类似以下内容:
public class FragmentMain extends Fragment {
private OnInteractionListener mListener;
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_main, container, false);
Button mainSignInButton = (Button) view.findViewById(R.id.mainSignInButton);
mainSignInButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mListener.onClickSignInButton()
}
});
return view;
}
public interface OnInteractionListener {
void onClickSignInButton();
}
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
try {
mListener = (OnInteractionListener) activity;
} catch (ClassCastException e) {
throw new ClassCastException(activity.toString() + " must implement OnInteractionListener");
}
}
@Override
public void onDetach() {
super.onDetach();
mListener = null
}
}
在您的活动中,尝试以下方法:
public class MyActivity extends AppCompatActivity implements FragmentMain.OnInteractionListener {
...
@Override
public void onClickSignInButton() {
Intent i = new Intent(this, LoginActivity.class);
startActivity(i);
}
}
首先,委托给活动
的startActivity()
。请尝试类似以下内容:
public class FragmentMain extends Fragment {
private OnInteractionListener mListener;
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_main, container, false);
Button mainSignInButton = (Button) view.findViewById(R.id.mainSignInButton);
mainSignInButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mListener.onClickSignInButton()
}
});
return view;
}
public interface OnInteractionListener {
void onClickSignInButton();
}
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
try {
mListener = (OnInteractionListener) activity;
} catch (ClassCastException e) {
throw new ClassCastException(activity.toString() + " must implement OnInteractionListener");
}
}
@Override
public void onDetach() {
super.onDetach();
mListener = null
}
}
在您的活动中,尝试以下方法:
public class MyActivity extends AppCompatActivity implements FragmentMain.OnInteractionListener {
...
@Override
public void onClickSignInButton() {
Intent i = new Intent(this, LoginActivity.class);
startActivity(i);
}
}
尝试使用getActivity().startActivity(i);在向“活动”添加片段的问题中添加您的代码。@Sahdepsingh感谢您的评论。我已经试过了,但仍然没有发生像@SurajVaishnav所说的那样,将添加片段的代码放在这里,尝试使用getActivity().startActivity(I);在向“活动”添加片段的问题中添加您的代码。@Sahdepsingh感谢您的评论。我已经试过了,但是仍然没有发生像@SurajVaishnav说的那样的事情,把你的代码放在这里,在这里添加片段嘿,谢谢你的回答。我曾试图实施它,但没有成功。我认为这里可能有一个不同的问题,因为在创建视图时,public视图中似乎没有代码执行。我试着从那里弹出一个祝酒词,但它根本没有出现。我真的迷路了:/嘿,谢谢你的回答。我曾试图实施它,但没有成功。我认为这里可能有一个不同的问题,因为在创建视图时,public视图中似乎没有代码执行。我试着从那里弹出一个祝酒词,但它根本没有出现。我真的迷路了:/