安卓中的viewpager用view填充页面,时间处理怎么办?

最近做了一个项目,用到一个viewpager,我知道可以用两种方式填充每个页面,fragment和view,我图方便,采用了view的方式,可是当我控件都加载在每个view的布局文件里面的时候,我发现,我不能处理他们的事件,比如说我在某一页中有一个imageview,我要点击它并换掉他的背景,我就在主要的mainactivity.java中初始化了控件并设置了点击事件,此时运行后程序崩溃,我分析一遍觉得是在主maniactivity中这样写,view不可能得到改变,因为它在程序运行初期就已经在oncreate中被添加到了list中,后面再怎么处理都不可能被改变,除非只是做一些展示作用,比如放几张照片之类的. 而对于我的项目,我需要处理每一页的很多点击事件,而又不可能只在一个mainacticity中实现,所以我觉的我是不是该改用fragment的方式去实现我的目的,请大神能给一个合理的说明,如果可以,请帮忙说下view和fragment的处理事件都应该怎么搞,另外我想知道正常的项目中包应该如何划分?多谢啦

0

6个回答

应该不是,,你应该先搞清楚具体的错误信息,然后对着logcat日志再找原因

0
NTSDB
胖达熊 您好,我的代码贴上了,帮忙看看吧,多谢啦
大约 3 年之前 回复

把错误log 贴出来 可以试着解决

0
NTSDB
胖达熊 您好,我刚贴了一下代码帮忙看看吧
大约 3 年之前 回复

你要确定fragment 已经获取到控件了,在确定fragment已经获取控件的情况下可以将view部分的逻辑写到fragment里面的

0
NTSDB
胖达熊 您好,我的代码贴上了,帮忙看看吧,多谢啦
大约 3 年之前 回复

这个是我的maninactivity文件,大多数我都做了标识,希望大神可以帮忙看看,我不知道用view的方式怎么去处理那些点击事件
package cn.iot.main;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

import cn.iot.sildingmenu.SlidingMenu;
import cn.iot.ui_design.R;
import android.app.Activity;
import android.os.Bundle;
import android.support.v4.view.ViewPager;
import android.view.Menu;
import android.view.MenuItem;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnTouchListener;
import android.view.Window;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends Activity implements OnClickListener {
/**
* 目前的问题:
* (1)蓝牙连接问题、
* (2)首页中listview和viewpager的侧滑冲突问题、
* (3)布局规划问题
*/
public SlidingMenu mleftMenu;
private ListviewList;
private ViewPager viewpager;

private View view_beiwang;
private View view_search;
private View view_firstpage;
private View view_forgotten;
private View view_citysearch;

private TextView tv1;
private TextView tv2;
private TextView tv3;
private TextView tv4;
private TextView tv5;

private ImageView image_connect;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    setContentView(R.layout.activity_main);
    mleftMenu = (SlidingMenu) findViewById(R.id.id_menu);  
    image_connect= (ImageView) findViewById(R.id.image_connect);


    viewList=new ArrayList<View>();
    //初始化并转化为view对象
    view_beiwang = View.inflate(this, R.layout.view_beiwang,null);
    view_search = View.inflate(this, R.layout.view_search,null);
    view_firstpage = View.inflate(this, R.layout.view_firstpage,null);
    view_forgotten = View.inflate(this, R.layout.view_forgotten,null);
    view_citysearch = View.inflate(this, R.layout.view_citysearch,null);

    viewList.add(view_beiwang);
    viewList.add(view_search);
    viewList.add(view_firstpage);
    viewList.add(view_forgotten);
    viewList.add(view_citysearch);

    //初始化viewPager
    //设置viewpager的滑动事件
    viewpager = (ViewPager) findViewById(R.id.viewpager);
    viewpager.setOnTouchListener(new OnTouchListener() {        
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            // TODO Auto-generated method stub
            v.getParent().requestDisallowInterceptTouchEvent(true);//这一句是告诉父类事件,不要去处理我的touch事件
            return false;
        }
    });


    //建立适配器的对象
    MypagerAdapter adapter = new MypagerAdapter(viewList);
    //给viewpager添加适配器
    viewpager.setAdapter(adapter);

    //初始化五个textview
    tv1 = (TextView) findViewById(R.id.textview_beiwang);
    tv2 = (TextView) findViewById(R.id.textview_search);
    tv3 = (TextView) findViewById(R.id.textview_firstpage);
    tv4 = (TextView) findViewById(R.id.textview_forgotton);
    tv5 = (TextView) findViewById(R.id.textview_citysearch);
    //添加点击事件
    tv1.setOnClickListener(this);
    tv2.setOnClickListener(this);
    tv3.setOnClickListener(this);
    tv4.setOnClickListener(this);
    tv5.setOnClickListener(this);

}
//用来为首页Imageview添加点击事件
public void bt_connect(View v){
    //考虑此处加一个fragment或者view
    Toast.makeText(this, "我是连接按钮", Toast.LENGTH_SHORT).show();

    image_connect.setImageDrawable(getResources().getDrawable(R.drawable.connet));
}

//这是侧滑菜单的点击事件
public void toggleMenu(View v){
        mleftMenu.toggle();
}
//每个底部按钮对应的view
@Override
public void onClick(View v) {
    // TODO Auto-generated method stub
    switch (v.getId()) {
    case R.id.textview_beiwang:
        viewpager.setCurrentItem(0,false);
        break;
    case R.id.textview_search:
        viewpager.setCurrentItem(1,false);
        break;
    case R.id.textview_firstpage:
        viewpager.setCurrentItem(2,false);
        break;
    case R.id.textview_forgotton:
        viewpager.setCurrentItem(3,false);
        break;
    case R.id.textview_citysearch:
        viewpager.setCurrentItem(4,false);
        break;
    }   
}

}


0

这张图片是我的主界面图片,有侧滑菜单和底部view还有viewpager组成:图片说明

0

我在首页做了一个,点击连接然后切换图片的事件,这是我点击首页上的连接的时候出现的错误:图片说明

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
安卓时间处理
将时间字符串转换为时间戳 /** * 字符串时间转换为时间戳 * @param time 所要转换的时间 * @param dateFormat 所传时间格式 例如:yyyy-MM-dd * @return */ public static long stringToTime(String time,String dateFormat)
安卓——ViewPager
-
安卓viewPager
安卓开发中实现页面滚动,比较适合新手学习,里面许多的代码都添加有注释,而且方法也是比较简单的。
Viewpager中动态更新View视图
查了很多资料,发现要做到ViewPager刷新数据,动态更改adapter的数量那种效果只要实现这个方法就可以了:@Override public int getItemPosition(Object object) { // TODO Auto-generated method stub return PagerAdapter.POSITION_NONE;
微信小程序--view填充整个页面
在页面中我们要将某个元素填充整个页面, 可以使用height:100%,前提是给定父元素的高度,在普通的html中可以将body或者html的高度赋值为height:100%,接下开才可以在其中的子元素使用height:100%来设置高度 但是在微信小程序中根节点是page,所以我们需要对page赋值height:100%,再对其中的view赋值height:100%即可 ...
安卓实训之——页面滑动ViewPager
制作滑动页面 第一步: 新建四个布局文件:page1.xml;page2.xml;page3.xml;并在每个xml中添加 pager1.xml: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" an
weex slider 滑动切换页面防安卓viewpager
weex slider 滑动切换页面防安卓viewpager之前不知道在哪里看到过这样的博客,于是花了一天时间写了下,自己是小菜鸟,过路人不要笑 **使用 -> <scoorl :message="parentMsg"></scoorl> app.vue ` import text1 from './components/tex
安卓中ViewPager控件的使用
ViewPaper简介 ViewPager是android扩展包v4包中的类,这个类可以让用户左右切换当前的view。 1)ViewPager类直接继承了ViewGroup类,所有它是一个容器类,可以在其中添加其他的view类。2)ViewPager类需要一个PagerAdapter适配器类给它提供数据。3)ViewPager经常和Fragment一起使用,并且提供了专门的FragmentPag
安卓ViewPager中嵌套ListView
ViewPager中嵌套ListView实现了下拉刷新和上拉更多,解决了冲突的问题。
安卓中动态的填充背景色
这个问题之前在项目中碰到过,花了不少时间去解决,由于赶项目的原因,就记在了笔记中,没有分享出来,现在拿出来给大家分享一下。其实也是很简单,就是主要用到gradientdrawable这个类: GradientDrawable gradientDrawable=(GradientDrawable)rlt.getBackground(); gradientDrawable.setColor(Color
安卓用自定义View画圆
1.先新建一个类继承View方法 package com.example.ll.canvas; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.support...
spring页面时间处理包
joda-time-2.7.jar时间处理jar包joda-time-2.7.jarjoda-time-2.7.jarjoda-time-2.7.jar
安卓页面指示器在viewpager中的关联使用,实现无限滚动效果
页面指示器
多View切换viewpager
看到楼主讲的很好,故整理了一下,希望能够对大家有用。blog地址:http://www.cnblogs.com/lky-mily/archive/2012/09/01/2666712.html
关于view的自定义viewpager
自定义viewpager的Auto方法 package com.bwie.week01; import android.content.Context; import android.os.Handler; import android.os.Message; import android.support.v4.view.ViewPager; import android.
ViewPager 动态添加 View
ViewPager动态添加View , 非常简单使用的Demo , 简单易懂
ViewPager轮播图之View视图
先简单介绍一下 微信中的左右滑动可以切换联系人和消息,有些应用图片自动播放就是用ViewPager做的;介绍过之后直接讲解;既然轮播的是视图自然咋们的线性布局或者相对布局中就要使用 ViewPager此View当然此ViewPager跟咋们的ListView一样是需要适配器的; ViewPager 是support    .v4包中的;&amp;lt;android.support.v4.view.Vie...
android ViewPager动态添加View
android ViewPager实现动态添加View对象,demo用了2种方式实现,一种是点击动态添加 一种是滑动时动态添加 2种方式测试都能成功。 欢迎对android感兴趣的朋友技术交流。本人QQ 351531626 添加QQ请带上说明哦 =。=
ViewPager无法更新View的问题
stackoverflow 解决方法1:覆写PagerAdapter的getItemPosition public int getItemPosition(Object object) { return POSITION_NONE; } 问题解决。
自定义View——仿ViewPager
1.主布局 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
ViewPager 加载自定义View
[img=https://img-bbs.csdn.net/upload/201505/29/1432883523_883902.png][/img]rn求教:rn有list 里面有id name age 属性,我把每个对象的id,name,age显示在图二里面,然后加载到图一的viewpager中。rn而且点击图一的“左”“右”以及手势滑动 都能实现viewpager滑动rn请问下这个需求应该怎么实现?
ViewPager delete any view
最近在做一个项目,其中有图片预览,并且可以删除任意一张图片的功能。在网络上找了好久,都没有效果。自己参考网络知识,总算搞出来一个,希望能够对同仁有所帮助。
自定义View填充圆
直接上代码吧: 其实填充圆的话无非就是两个圆 一个实心圆的半径不停变化 一个空心圆作为边框 然后就可以实现了 而且这个代码还是可以实现简单的拖拽的 package gaojianyi.bwie.com.myzdy_dc; import android.content.Context; import android.graphics.Canvas; import android.
安卓用ViewPager实现APP的引导页和小圆点
在模拟器上显示效果大概如下: 大概思路和代码如下: 1、首先创建一个layout布局文件, &amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&amp;gt; &amp;lt;RelativeLayout xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot; xmlns:tools=&quot;http:/...
频道管理(ViewPager页面中)
我们先来看一下效果图 我写了三个页面(首页 推荐 我的) 我要在推荐的页面写一个频道管理 其实和之前的写法几乎是一样的 1.在推荐的页面进行布局 &amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&amp;gt; &amp;lt;LinearLayout xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot; ...
安卓中双缓冲自定义View
安卓中双缓冲自定义View,可以实现绘图,反锯齿,可设画笔风格
安卓中的事件分发机制之View控件
前言:Android 中与 Touch 事件相关的方法包括:dispatchTouchEvent(MotionEvent ev)、onInterceptTouchEvent(MotionEvent ev)、onTouchEvent(MotionEvent ev);能够响应这些方法的控件包括:ViewGroup、View、Activity。继承ViewGroup的大多是容器控件,如Linea...
安卓ViewPager实现广告轮播
此博文用来记录安卓学习,后续的思路整理,可能会出现错误,欢迎指正…MainActivity的代码 package com.merpyzf.slideshow; import android.app.Activity; import android.os.Bundle; import android.support.v4.view.PagerAdapter; import android.sup
安卓学习笔记之ViewPager
在昨天,我学习了ViewPager。并且给他加上了动画效果。现在就来一起回顾一下吧! 一、布局 这是主布局: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" andro
安卓ViewPager无限滑动
一个安卓初学者,记录一下自己的学习历程 安卓ViewPager无限滑动的实现方式主要有两种 1.修改适配器getCount()方法返回的数量 @Override public int getCount() {          return Integer.MAX_VALUE; } mVpGuide.setCurrentItem(data.size * 100);修改v
安卓使用viewpager
view pager是安卓3.0引入的一个页面容器组件,用于手势滑动切换页面,常常用于页面导航或者图片轮播。view pager的最主要的是一个viewadapter适配器。我们来通过代码具体看 private myFriend friend; private myMap map; private myAbout about; private View viewfri...
安卓ViewPager无限循环
viewpager的无限循环原理就是当滚到最后一条时预加载下一条,这个下一条设置成第一条即可,实现无限循环。
安卓简单实现RadioButton与ViewPager
0
安卓高级控件之ViewPager
引导页:适配器   PageAdapter                      滑动监听   addOnPageChangeListener                       导航点     github 开源框架  : ViewPagerIndicator                       属性:setRadius   (设置半径)               
安卓viewpager空指针异常
新手求教,报空指针异常:nnn```npackage com.sweetstar86.day6hw;nnimport android.app.Activity;nimport android.content.Intent;nimport android.support.v4.view.PagerAdapter;nimport android.support.v4.view.ViewPager;nimport android.support.v7.app.AppCompatActivity;nimport android.os.Bundle;nimport android.view.View;nimport android.view.ViewGroup;nnimport java.util.ArrayList;nnpublic class GuideActivity extends Activity implements ViewPager.OnPageChangeListener nn private ViewPager viewPager;n private ArrayList views = new ArrayList<>();nn @Overriden protected void onCreate(Bundle savedInstanceState) n super.onCreate(savedInstanceState);n setContentView(R.layout.activity_guide);n initView();nn nn public void initView() n views.add(getLayoutInflater().inflate(R.layout.layout_pre1, null));n views.add(getLayoutInflater().inflate(R.layout.layout_pre2, null));nnn viewPager.setOnPageChangeListener(this);n viewPager.setAdapter(new MyPageAdapter());nn nn @Overriden public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) nnn nn @Overriden public void onPageSelected(int position) nn nn @Overriden public void onPageScrollStateChanged(int state) nn if (state == views.size()) n Intent mainIntent = new Intent(GuideActivity.this, MainActivity.class);n GuideActivity.this.startActivity(mainIntent);n GuideActivity.this.finish();n n nn class MyPageAdapter extends PagerAdapter nn @Overriden public int getCount() n return views.size();n nn @Overriden public Object instantiateItem(ViewGroup container, int position) n View v = views.get(position);n container.addView(v);n return v;n nn @Overriden public void destroyItem(ViewGroup container, int position, Object object) n container.removeView(views.get(position));n nn @Overriden public boolean isViewFromObject(View view, Object object) n return view == object;n n nnnnnnnn n```nn在viewPager.setOnPageChangeListener(this);和ninitView();n处,报错。nnnn
安卓卡片式ViewPager
我们来看看activity的布局: &lt;?xml version="1.0" encoding="utf-8"?&gt; &lt;RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tool...
安卓自定义viewpager
自定义viewpager,实现类似viewpager的滑动翻页 同时还有广告栏的效果
安卓 ViewPager 添加小点
参考:  http://blog.csdn.net/h378588270/article/details/42104821 自己打过代码 需要注意  网址里面选择器写的不是selecor   http://pan.baidu.com/disk/home?errno=0&errmsg=Auth%20Login%20Sucess&stoken=a182e8250386f3541c
安卓画廊效果(ViewPager)
这一篇只讲应用不讲原理,看原理的同学可以关了。 github地址:https://github.com/wangshangyao/BaseBannerView 在github上把项目down下来,然后将项目中的Bannder以Model的形式导入你的项目。 首先: 在你的布局中声明控件 &amp;amp;amp;amp;amp;lt;com.yao.banner.BannerView android:id=...
安卓 简单的ViewPager 滑屏
安卓 简单的ViewPager 滑屏完结
相关热词 c#异步发送kafka c#窗体编号 c# 操作二进制文件 c# 反射 机制 c#线程 窗体失去响应 c#角度转弧度 c# 解析gps数据 c# vs设置 语法版本 c# json含回车 c#多线程demo