Java 如何添加onClickListener以将新活动打开到片段活动
我是android studio的新手,所以我会尽可能地解释。 我使用片段制作了一个菜单,因此我的Java 如何添加onClickListener以将新活动打开到片段活动,java,android,xml,button,onclick,Java,Android,Xml,Button,Onclick,我是android studio的新手,所以我会尽可能地解释。 我使用片段制作了一个菜单,因此我的活动\u home是一个片段活动。在片段化活动中,我创建了一个按钮,单击该按钮后,应该会打开一个新活动 问题是我不知道如何在片段化活动中实现onClickListener 我参加的每一个教程都是从一开始就做的。 这是我的主要活动: package com.example.relja.diplomskirad; import android.os.Bundle; import android.su
活动\u home
是一个片段活动。在片段化活动中,我创建了一个按钮,单击该按钮后,应该会打开一个新活动
问题是我不知道如何在片段化活动中实现onClickListener
我参加的每一个教程都是从一开始就做的。
这是我的主要活动:
package com.example.relja.diplomskirad;
import android.os.Bundle;
import android.support.design.widget.TabLayout;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.View;
import android.widget.Button;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends AppCompatActivity {
private Toolbar toolbar;
private TabLayout tabLayout;
private ViewPager viewPager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(false);
viewPager = (ViewPager) findViewById(R.id.viewpager);
setupViewPager(viewPager);
tabLayout = (TabLayout) findViewById(R.id.tabs);
tabLayout.setupWithViewPager(viewPager);
}
private void setupViewPager(ViewPager viewPager) {
ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager());
adapter.addFragment(new home(), "Home");
adapter.addFragment(new profil(), "Profil");
adapter.addFragment(new mapa(), "Mapa");
viewPager.setAdapter(adapter);
}
class ViewPagerAdapter extends FragmentPagerAdapter {
private final List<Fragment> mFragmentList = new ArrayList<>();
private final List<String> mFragmentTitleList = new ArrayList<>();
public ViewPagerAdapter(FragmentManager manager) {
super(manager);
}
@Override
public Fragment getItem(int position) {
return mFragmentList.get(position);
}
@Override
public int getCount() {
return mFragmentList.size();
}
public void addFragment(Fragment fragment, String title) {
mFragmentList.add(fragment);
mFragmentTitleList.add(title);
}
@Override
public CharSequence getPageTitle(int position) {
return mFragmentTitleList.get(position);
}
}
}
这是home xml,按钮是:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".home">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="80dp"
android:orientation="vertical">
<LinearLayout
android:id="@+id/glavnaStranica1"
android:layout_width="match_parent"
android:layout_height="200dp"
android:orientation="horizontal"
android:gravity="center">
<ImageView
android:id="@+id/logoSlika"
android:layout_width="200dp"
android:layout_height="200dp"
android:src="@drawable/logo2"
android:layout_gravity="center"/>
</LinearLayout>
<LinearLayout
android:id="@+id/glavnaStranica2"
android:layout_width="match_parent"
android:layout_height="200dp"
android:orientation="horizontal"
android:gravity="center"
android:layout_marginStart="30dp">
<EditText
android:id="@+id/search"
android:layout_width="250dp"
android:layout_height="38dp"
android:hint="@string/search"
android:background="@drawable/ivica"
android:drawableLeft="@drawable/search"
android:drawablePadding="10dp"
android:inputType="text"
/>
<Button
android:id="@+id/dugme"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/dugme"
/>
</LinearLayout>
<Button
android:id="@+id/dugmeLogin"
android:layout_width="70dp"
android:layout_height="40dp"
android:text="@string/dugmeLogin"
android:layout_gravity="end"
android:layout_marginRight="10dp"
android:onClick="loginLogin"
style="?android:attr/borderlessButtonStyle"/>
</LinearLayout>
</RelativeLayout>
您可以在onCreateView()方法中的片段“home”中使用此代码。您可以尝试此操作。。这会有帮助的
public class home extends Fragment {
private Button btn_dumge_login;
public home() {
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
return inflater.inflate(R.layout.activity_home, container, false);
}
@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
btn_dumge_login = view.findViewById(R.id.dumgeLogin)
btn_dumge_login.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(getActivity(), TestActivity.class) ;
getActivity().startActivity(intent);
}
});
}
}
您应该首先选择要从中导航的视图,例如,id为dugmeLogin的按钮 那么你的代码应该是这样的
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.activity_home, container, false);
Button loginButton = view.findViewById(R.id.dugmeLogin);
loginButton.setOnClickListener(v -> {
// You code goes here
});
return view;
}
java如果你只是在片段中执行onClickListener,然后在片段ii中编写onClickListener,如果你想在父片段活动中单击片段,那么你需要使用回调。有一件事我不明白,这个问题每周会出现两到三次,如何解决?为什么?欢迎兄弟。。请接受我的回答并放弃投票,这样面对这个问题的人才能明白哪一个是正确的,哪一个是有效的。我不能放弃投票,因为我是新来的,它不会让我投票。但我接受了。
View view = inflater.inflate(R.layout.your_layout_file, container, false);
view.findViewById(R.id.button_id).setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View view) {
getContext().startActivity(new Intent(getContext(), YourNewActivity.class));
});
return view;
public class home extends Fragment {
private Button btn_dumge_login;
public home() {
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
return inflater.inflate(R.layout.activity_home, container, false);
}
@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
btn_dumge_login = view.findViewById(R.id.dumgeLogin)
btn_dumge_login.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(getActivity(), TestActivity.class) ;
getActivity().startActivity(intent);
}
});
}
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.activity_home, container, false);
Button loginButton = view.findViewById(R.id.dugmeLogin);
loginButton.setOnClickListener(v -> {
// You code goes here
});
return view;
}