Java 滑动图像不';行不通
我有两个Java类。第一个活动是Java 滑动图像不';行不通,java,android,Java,Android,我有两个Java类。第一个活动是main活动,它是名为HomeScreen的NavigationView活动。在内容布局中,我添加了滑动图像布局,其逻辑在名为Slider的新类中实现 当我运行应用程序时,滑动图像的布局为空。我想我必须“组合”这两个活动,所以当我运行应用程序时,滑块也将工作,以使滑动图像出现并工作 这是我的代码逻辑- 主屏幕活动 import android.content.Context; import android.content.DialogInterface; impo
main活动
,它是名为HomeScreen的NavigationView活动。在内容布局中,我添加了滑动图像布局
,其逻辑在名为Slider
的新类中实现
当我运行应用程序时,滑动图像的布局为空。我想我必须“组合”这两个活动,所以当我运行应用程序时,滑块也将工作,以使滑动图像出现并工作
这是我的代码逻辑-
主屏幕活动
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.design.widget.NavigationView;
import android.support.v4.view.GravityCompat;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBarDrawerToggle;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.MenuItem;
import com.daimajia.slider.library.SliderLayout;
import static com.pertanian.puslitbangbun.fixyou.Login.my_shared_preferences;
import static com.pertanian.puslitbangbun.fixyou.Login.session_status;
public class HomeScreen extends AppCompatActivity
implements NavigationView.OnNavigationItemSelectedListener {
SharedPreferences sharedpreferences;
Boolean session = false;
Slider slider;
public static final String TAG_ID = "id";
public static final String TAG_USERNAME = "username";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_home_screen);
Toolbar toolbar = findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
DrawerLayout drawer = findViewById(R.id.drawer_layout);
ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
drawer.addDrawerListener(toggle);
toggle.syncState();
NavigationView navigationView = findViewById(R.id.nav_view);
navigationView.setNavigationItemSelectedListener(this);
sharedpreferences = getSharedPreferences(my_shared_preferences, Context.MODE_PRIVATE);
session = sharedpreferences.getBoolean(session_status, false);
if (session) {
navigationView.getMenu().findItem(R.id.admin).setVisible(false);
}
else {
navigationView.getMenu().findItem(R.id.logout).setVisible(false);
}
}
@Override
public void onBackPressed() {
DrawerLayout drawer = findViewById(R.id.drawer_layout);
if (drawer.isDrawerOpen(GravityCompat.START)) {
drawer.closeDrawer(GravityCompat.START);
} else {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setCancelable(true);
builder.setMessage("Anda yakin ingin keluar?");
builder.setPositiveButton("Ya", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
//if user pressed "yes", then he is allowed to exit from application
moveTaskToBack(true);
finish();
}
});
builder.setNegativeButton("Tidak", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
//if user select "No", just cancel this dialog and continue with app
dialog.cancel();
}
});
AlertDialog alert = builder.create();
alert.show();
}
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
item.getItemId();
return super.onOptionsItemSelected(item);
}
@SuppressWarnings("StatementWithEmptyBody")
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
// Handle navigation view item clicks here.
int id = item.getItemId();
if (id == R.id.artikel) {
Intent i = new Intent(getApplicationContext(),MainActivity.class);
startActivity(i);
} else if (id == R.id.puslitbangbun) {
Intent i = new Intent(getApplicationContext(), Pemberlitri.class);
startActivity(i);
} else if (id == R.id.balittro) {
Intent i = new Intent(getApplicationContext(), MainActivity.class);
startActivity(i);
} else if (id == R.id.balittri) {
Intent i = new Intent(getApplicationContext(), MainActivity.class);
startActivity(i);
} else if (id == R.id.balittas) {
Intent i = new Intent(getApplicationContext(), MainActivity.class);
startActivity(i);
} else if (id == R.id.balitpalma) {
Intent i = new Intent(getApplicationContext(), MainActivity.class);
startActivity(i);
} else if (id == R.id.tentang) {
Intent i = new Intent(getApplicationContext(),Tentang.class);
startActivity(i);
} else if (id == R.id.admin) {
Intent i = new Intent(getApplicationContext(),Login.class);
startActivity(i);
} else if (id == R.id.logout) {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setCancelable(true);
builder.setMessage("Anda yakin ingin Logout?");
builder.setPositiveButton("Ya", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
//if user pressed "yes", then he is allowed to exit from application
SharedPreferences.Editor editor = sharedpreferences.edit();
editor.putBoolean(Login.session_status, false);
editor.putString(TAG_ID, null);
editor.putString(TAG_USERNAME, null);
editor.apply();
startActivity(new Intent(HomeScreen.this, HomeScreen.class));
}
});
builder.setNegativeButton("Tidak", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
//if user select "No", just cancel this dialog and continue with app
dialog.cancel();
}
});
AlertDialog alert = builder.create();
alert.show();
}
DrawerLayout drawer = findViewById(R.id.drawer_layout);
drawer.closeDrawer(GravityCompat.START);
return true;
}
}
Slider.java
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.widget.Toast;
import com.daimajia.slider.library.Animations.DescriptionAnimation;
import com.daimajia.slider.library.SliderLayout;
import com.daimajia.slider.library.SliderTypes.BaseSliderView;
import com.daimajia.slider.library.SliderTypes.TextSliderView;
import com.daimajia.slider.library.Tricks.ViewPagerEx;
import java.util.HashMap;
public class Slider extends AppCompatActivity
implements BaseSliderView.OnSliderClickListener,
ViewPagerEx.OnPageChangeListener
{
SliderLayout sliderLayout ;
HashMap<String, String> HashMapForURL ;
HashMap<String, Integer> HashMapForLocalRes ;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.content_home_screen);
sliderLayout = findViewById(R.id.slider);
//Call this method if you want to add images from URL .
//AddImagesUrlOnline();
//Call this method to add images from local drawable folder .
AddImageUrlFormLocalRes();
//Call this method to stop automatic sliding.
//sliderLayout.stopAutoCycle();
for(String name : HashMapForLocalRes.keySet()){
TextSliderView textSliderView = new TextSliderView(Slider.this);
textSliderView
.description(name)
.image(HashMapForLocalRes.get(name))
.setScaleType(BaseSliderView.ScaleType.Fit)
.setOnSliderClickListener(this);
textSliderView.bundle(new Bundle());
textSliderView.getBundle()
.putString("extra",name);
sliderLayout.addSlider(textSliderView);
}
sliderLayout.setPresetTransformer(SliderLayout.Transformer.DepthPage);
sliderLayout.setPresetIndicator(SliderLayout.PresetIndicators.Center_Bottom);
sliderLayout.setCustomAnimation(new DescriptionAnimation());
sliderLayout.setDuration(3000);
sliderLayout.startAutoCycle();
sliderLayout.addOnPageChangeListener(Slider.this);
}
//@Override
//protected void onStop() {
// sliderLayout.stopAutoCycle();
//super.onStop();
//}
@Override
public void onSliderClick(BaseSliderView slider) {
Toast.makeText(this,slider.getBundle().get("extra") + "", Toast.LENGTH_SHORT).show();
}
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {}
@Override
public void onPageSelected(int position) {
Log.d("Slider Demo", "Page Changed: " + position);
}
@Override
public void onPageScrollStateChanged(int state) {
}
public void AddImagesUrlOnline(){
HashMapForURL = new HashMap<>();
HashMapForURL.put("CupCake", "http://androidblog.esy.es/images/cupcake-1.png");
HashMapForURL.put("Donut", "http://androidblog.esy.es/images/donut-2.png");
HashMapForURL.put("Eclair", "http://androidblog.esy.es/images/eclair-3.png");
HashMapForURL.put("Froyo", "http://androidblog.esy.es/images/froyo-4.png");
HashMapForURL.put("GingerBread", "http://androidblog.esy.es/images/gingerbread-5.png");
}
public void AddImageUrlFormLocalRes(){
HashMapForLocalRes = new HashMap<>();
HashMapForLocalRes.put("CupCake", R.drawable.bgall);
HashMapForLocalRes.put("Donut", R.drawable.bgadmin);
HashMapForLocalRes.put("Eclair", R.drawable.bgall);
HashMapForLocalRes.put("Froyo", R.drawable.bgadmin);
HashMapForLocalRes.put("GingerBread", R.drawable.bgall);
}
}
导入android.os.Bundle;
导入android.support.v7.app.AppActivity;
导入android.util.Log;
导入android.widget.Toast;
导入com.daimajia.slider.library.Animations.DescriptionAnimation;
导入com.daimajia.slider.library.SliderLayout;
导入com.daimajia.slider.library.SliderTypes.BaseSliderView;
导入com.daimajia.slider.library.SliderTypes.TextSliderView;
导入com.daimajia.slider.library.Tricks.ViewPagerEx;
导入java.util.HashMap;
公共类滑块扩展AppCompatActivity
实现BaseSliderView.OnSliderClickListener,
ViewPagerEx.OnPageChangeListener
{
滑块布局滑块布局;
HashMapHashMapForURL;
HashMap HashMapForLocalRes;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.content\u主屏幕);
sliderLayout=findViewById(R.id.slider);
//如果要从URL添加图像,请调用此方法。
//AddImagesUrlOnline();
//调用此方法从本地可绘制文件夹添加图像。
AddImageUrlFormLocalRes();
//调用此方法以停止自动滑动。
//滑块布局。停止摩托车();
for(字符串名称:HashMapForLocalRes.keySet()){
TextSliderView TextSliderView=新的TextSliderView(Slider.this);
文本幻灯片视图
.说明(姓名)
.image(HashMapForLocalRes.get(名称))
.setScaleType(BaseSliderView.ScaleType.Fit)
.setOnSliderClickListener(本);
text sliderView.bundle(新bundle());
textSliderView.getBundle()
.putString(“额外”,名称);
sliderLayout.addSlider(textSliderView);
}
sliderLayout.setPresetTransformer(sliderLayout.Transformer.DepthPage);
sliderLayout.setPresetIndicator(sliderLayout.PresetIndicators.Center\U-Bottom);
setCustomAnimation(新的DescriptionAnimation());
滑块布局。设置持续时间(3000);
sliderLayout.startAutoCycle();
sliderLayout.addOnPageChangeListener(Slider.this);
}
//@凌驾
//受保护的void onStop(){
//滑块布局。停止摩托车();
//super.onStop();
//}
@凌驾
滑块上的公共空白单击(BaseSliderView滑块){
Toast.makeText(this,slider.getBundle().get(“额外”)+”,Toast.LENGTH\u SHORT.show();
}
@凌驾
已滚动页面上的公共void(int-position、float-positionOffset、int-positionOffsetPixels){}
@凌驾
已选择页面上的公共无效(内部位置){
Log.d(“滑块演示”,“页面更改:”+位置);
}
@凌驾
公共无效onPageScrollStateChanged(int状态){
}
公共无效AddImagesUrlOnline(){
HashMapForURL=新的HashMap();
HashMapForURL.put(“纸杯蛋糕”http://androidblog.esy.es/images/cupcake-1.png");
HashMapForURL.put(“甜甜圈”http://androidblog.esy.es/images/donut-2.png");
HashMapForURL.put(“Eclair”http://androidblog.esy.es/images/eclair-3.png");
HashMapForURL.put(“Froyo”http://androidblog.esy.es/images/froyo-4.png");
HashMapForURL.put(“姜饼”http://androidblog.esy.es/images/gingerbread-5.png");
}
public void AddImageUrlFormLocalRes(){
HashMapForLocalRes=新的HashMap();
HashMapForLocalRes.put(“杯形蛋糕”,R.drawable.bgall);
HashMapForLocalRes.put(“Donut”,R.drawable.bgadmin);
HashMapForLocalRes.put(“Eclair”,R.drawable.bgall);
HashMapForLocalRes.put(“Froyo”,R.drawable.bgadmin);
HashMapForLocalRes.put(“姜饼”,R.drawable.bgall);
}
}
我认为问题出在这方面
startActivity(new Intent(HomeScreen.this, HomeScreen.class));
应该是这样
startActivity(new Intent(HomeScreen.this, Slider.class));
事实并非如此。它用于注销确认,因此如果单击“是”,主屏幕活动将刷新,navigationView中的“管理”按钮将显示,而不是注销按钮