80,350
社区成员
发帖
与我相关
我的任务
分享
public class BActivity extends ActivityGroup{
private ViewPager viewPager;//页卡内容
private ImageView imageView;// 动画图片
private Button button3,button4,button5,button6;
private List<View> views;// Tab页面列表
private int offset = 0;// 动画图片偏移量
private int currIndex = 0;// 当前页卡编号
private int bmpW;// 动画图片宽度
private View view1,view2,view3,view4;//各个页卡
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.bmain);
InitImageView();
InitButtonView();
InitViewPager();
}
private void InitViewPager() {
viewPager=(ViewPager) findViewById(R.id.Bviewpager);
try{
view1 = getLocalActivityManager().startActivity("MainActivity",
new Intent(this, Item_java.class)).getDecorView(); //这个地方,try的时候无法通过。就在这里跳到catch了。
view2 = getLocalActivityManager().startActivity("MainActivity",
new Intent(this, Item_dotnet.class)).getDecorView();
view3 = getLocalActivityManager().startActivity("MainActivity",
new Intent(this, Item_insertapp.class)).getDecorView();
view4 = getLocalActivityManager().startActivity("MainActivity",
new Intent(this, Item_netmanagement.class)).getDecorView();
views=new ArrayList<View>();
views.add(view1);
views.add(view2);
views.add(view3);
views.add(view4);
viewPager.setAdapter(new MyViewPagerAdapter(views));
viewPager.setCurrentItem(0);
viewPager.setOnPageChangeListener(new MyOnPageChangeListener());
}
catch (Exception e) {
// TODO: handle exception
int xx=1;
}
}
/**
* 初始化头标
*/
private void InitButtonView() {
button3 = (Button) findViewById(R.id.btn_java);
button4 = (Button) findViewById(R.id.btn_dotnet);
button5 = (Button) findViewById(R.id.btn_insertapp);
button6 = (Button) findViewById(R.id.btn_netmanagement);
button3.setOnClickListener(new MyOnClickListener(0));
button4.setOnClickListener(new MyOnClickListener(1));
button5.setOnClickListener(new MyOnClickListener(2));
button6.setOnClickListener(new MyOnClickListener(3));
}
/**
2 * 初始化动画,这个就是页卡滑动时,下面的横线也滑动的效果,在这里需要计算一些数据
3 */
private void InitImageView() {
imageView= (ImageView) findViewById(R.id.Bcursor);
bmpW = BitmapFactory.decodeResource(getResources(), R.drawable.a).getWidth();// 获取图片宽度
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
int screenW = dm.widthPixels;// 获取分辨率宽度
offset = (screenW /4 - bmpW) / 2;// 计算偏移量
Matrix matrix = new Matrix();
matrix.postTranslate(offset, 0);
imageView.setImageMatrix(matrix);// 设置动画初始位置
}
/**
*
* 头标点击监听 3 */
private class MyOnClickListener implements OnClickListener{
private int index=0;
public MyOnClickListener(int i){
index=i;
}
public void onClick(View v) {
viewPager.setCurrentItem(index);
}
}
public class MyViewPagerAdapter extends PagerAdapter{
private List<View> mListViews;
public MyViewPagerAdapter(List<View> mListViews) {
this.mListViews = mListViews;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView(mListViews.get(position));
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
container.addView(mListViews.get(position), 0);
return mListViews.get(position);
}
@Override
public int getCount() {
return mListViews.size();
}
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
return arg0==arg1;
}
}
public class MyOnPageChangeListener implements OnPageChangeListener{
int one = offset * 2 + bmpW;// 页卡1 -> 页卡2 偏移量
int two = one * 2;// 页卡1 -> 页卡3 偏移量
int three = one * 3;// 页卡1 -> 页卡4偏移量
public void onPageSelected(int arg0) {
Animation animation = new TranslateAnimation(one*currIndex, one*arg0, 0, 0);
currIndex = arg0;
animation.setFillAfter(true);// True:图片停在动画结束位置
animation.setDuration(300);
imageView.startAnimation(animation);
}
@Override
public void onPageScrollStateChanged(int arg0) {
}
@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
}
}
}
tvliulanrenshu=(TextView)this.findViewById(R.id.dotnetliulanrenshu1);
这句话有错吧。用this不行?哈哈,专解决简单问题,没有啦,楼主点了邀请我回答,,, [quote=引用 7 楼 han1202012 的回复:] 问题简单了 回答的就是多啊 贴出完整 log 日志信息 把红色的部分全复制上来
你这里还是debug看下哪个控件没有ID咯,因为你实例化了它所以这里处错误的话BA会报错,,,
哈哈,专解决简单问题,没有啦,楼主点了邀请我回答,,, 问题简单了 回答的就是多啊 贴出完整 log 日志信息 把红色的部分全复制上来
问题简单了 回答的就是多啊 贴出完整 log 日志信息 把红色的部分全复制上来
com.andyidea.tabdemo.Item_java.onCreate(Item_java.java:77) 在 Item_java 的 77 行 出现的问题 什么代码啊 这个 Item_java 类的代码 贴下
package com.andyidea.tabdemo;
import java.io.UnsupportedEncodingException;
import org.json.JSONArray;
import org.json.JSONObject;
import org.ksoap2.SoapEnvelope;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.HttpTransportSE;
import com.andyidea.tabdemo.AsyncImageLoader;
import com.andyidea.tabdemo.CallbackImpl;
import com.andyidea.tabdemo.R;
import com.studyonline.connsoap.DBUtil;
import android.app.ActivityGroup;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
public class Item_java extends ActivityGroup{
static TextView tvtext;
static TextView tvjiage;
static TextView tvliulanrenshu;
static LinearLayout linearlo;
private AsyncImageLoader loader = new AsyncImageLoader();
private static String URL=DBUtil.getURL();
private static String NAMESPACE=DBUtil.getNAMESPACE();
//调用方法名
private static String METHOD_NAME="SelectVideoByType ";
private static String SOAP_ACTION=NAMESPACE+METHOD_NAME;
private static int[] javatexta={R.id.javatext1,R.id.javatext2,R.id.javatext3,R.id.javatext4,
R.id.javatext5,R.id.javatext6,R.id.javatext7,R.id.javatext8,R.id.javatext9,R.id.javatext10,
R.id.javatext11,R.id.javatext12,R.id.javatext13,R.id.javatext14,R.id.javatext15};
private static int[] javapica={R.id.javapic1,R.id.javapic2,R.id.javapic3,R.id.javapic4,R.id.javapic5,
R.id.javapic6,R.id.javapic7,R.id.javapic8,R.id.javapic9,R.id.javapic10,R.id.javapic11,
R.id.javapic12,R.id.javapic13,R.id.javapic14,R.id.javapic15};
private static int[] javajiagea={R.id.javajiage1,R.id.javajiage2,R.id.javajiage3,R.id.javajiage4,
R.id.javajiage5,R.id.javajiage6,R.id.javajiage7,R.id.javajiage8,R.id.javajiage9,R.id.javajiage10,
R.id.javajiage11,R.id.javajiage12,R.id.javajiage13,R.id.javajiage14,R.id.javajiage15};
private static int[] javaa={0,R.id.java2,R.id.java3,R.id.java4,R.id.java5,
R.id.java6,R.id.java7,R.id.java8,R.id.java9,R.id.java10,R.id.java11,
R.id.java12,R.id.java13,R.id.java14,R.id.java15};
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.item_java);
for(int x=0;x < 10;x++)
{
String[] java=getVideoJSON("", "Java技术",x);
if(java[x]==null)
break;
else
{
if(x==0)
{
tvliulanrenshu=(TextView)this.findViewById(R.id.dotnetliulanrenshu1);
tvliulanrenshu.setText(java[3]+"人");
tvtext=(TextView)findViewById(javatexta[x]);
tvjiage=(TextView)findViewById(javajiagea[x]);
tvtext.setText(java[0]);
tvjiage.setText(java[1]+"元");
}
else
{
linearlo=(LinearLayout)this.findViewById(javaa[x]);
linearlo.setVisibility(View.VISIBLE);
loadImage("http://192.168.1.112:8001/" + java[2],javapica[x]);
tvtext=(TextView)this.findViewById(javatexta[x]);
tvjiage=(TextView)this.findViewById(javajiagea[x]);
tvtext.setText(java[0]);
tvjiage.setText(java[1]+"元");
}
}
}
}
public static String[] getVideoJSON(String strUPhone,String strVD,int index)
{
String[] str=null;
try {
SoapObject rpc=new SoapObject(NAMESPACE, METHOD_NAME);
// 设置调用方法的参数值,如果没有参数,可以省略,但是我们一般都有参数的
rpc.addProperty("UPhone", strUPhone);
rpc.addProperty("VD", strVD);
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.bodyOut = rpc;
envelope.dotNet = true;
envelope.setOutputSoapObject(rpc);
HttpTransportSE ht=new HttpTransportSE(URL);
ht.debug=true;
ht.call(SOAP_ACTION, envelope);
SoapObject detail=(SoapObject) envelope.getResponse();
System.out.println("detail" + detail);
str=JsonToString(detail,index);
} catch (Exception e) {
e.printStackTrace();
}
return str;
}
@SuppressWarnings("null")
public static String[] JsonToString(SoapObject detail,int index) throws UnsupportedEncodingException
{
String[] namepricepic={"","","",""};
try {
String strJson=detail.getProperty(index).toString();
JSONObject dataJson=new JSONObject(strJson);
JSONArray tbVideo=dataJson.getJSONArray("tbVideo");
JSONObject info=tbVideo.getJSONObject(index);
namepricepic[0]=info.getString("VideoName");
namepricepic[1]=info.getString("VideoPrice");
namepricepic[2]=info.getString("VideoPic");
namepricepic[3]=info.getString("VideoPeople");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return namepricepic;
}
//url:下载图片的url
//id:ImageView控件的id
private void loadImage(final String url, final int id) {
// TODO Auto-generated method stub
//如果缓存过就会从缓存中取出图像,ImageCallback接口中方法也不会被执行
ImageView imageView = (ImageView) findViewById(id);
CallbackImpl callbackImpl = new CallbackImpl(imageView);
Drawable cacheImage = loader.loadDrawable(url, callbackImpl);
if(cacheImage!=null){
imageView.setImageDrawable(cacheImage);
}
}
}
看这个完整的吧。上面那个是把import 缩去了com.andyidea.tabdemo.Item_java.onCreate(Item_java.java:77) 在 Item_java 的 77 行 出现的问题 什么代码啊 这个 Item_java 类的代码 贴下
public class Item_java extends ActivityGroup{
static TextView tvtext;
static TextView tvjiage;
static TextView tvliulanrenshu;
static LinearLayout linearlo;
private AsyncImageLoader loader = new AsyncImageLoader();
private static String URL=DBUtil.getURL();
private static String NAMESPACE=DBUtil.getNAMESPACE();
//调用方法名
private static String METHOD_NAME="SelectVideoByType ";
private static String SOAP_ACTION=NAMESPACE+METHOD_NAME;
private static int[] javatexta={R.id.javatext1,R.id.javatext2,R.id.javatext3,R.id.javatext4,
R.id.javatext5,R.id.javatext6,R.id.javatext7,R.id.javatext8,R.id.javatext9,R.id.javatext10,
R.id.javatext11,R.id.javatext12,R.id.javatext13,R.id.javatext14,R.id.javatext15};
private static int[] javapica={R.id.javapic1,R.id.javapic2,R.id.javapic3,R.id.javapic4,R.id.javapic5,
R.id.javapic6,R.id.javapic7,R.id.javapic8,R.id.javapic9,R.id.javapic10,R.id.javapic11,
R.id.javapic12,R.id.javapic13,R.id.javapic14,R.id.javapic15};
private static int[] javajiagea={R.id.javajiage1,R.id.javajiage2,R.id.javajiage3,R.id.javajiage4,
R.id.javajiage5,R.id.javajiage6,R.id.javajiage7,R.id.javajiage8,R.id.javajiage9,R.id.javajiage10,
R.id.javajiage11,R.id.javajiage12,R.id.javajiage13,R.id.javajiage14,R.id.javajiage15};
private static int[] javaa={0,R.id.java2,R.id.java3,R.id.java4,R.id.java5,
R.id.java6,R.id.java7,R.id.java8,R.id.java9,R.id.java10,R.id.java11,
R.id.java12,R.id.java13,R.id.java14,R.id.java15};
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.item_java);
for(int x=0;x < 10;x++)
{
String[] java=getVideoJSON("", "Java技术",x);
if(java[x]==null)
break;
else
{
if(x==0)
{
tvliulanrenshu=(TextView)this.findViewById(R.id.dotnetliulanrenshu1);
tvliulanrenshu.setText(java[3]+"人");
tvtext=(TextView)findViewById(javatexta[x]);
tvjiage=(TextView)findViewById(javajiagea[x]);
tvtext.setText(java[0]);
tvjiage.setText(java[1]+"元");
}
else
{
linearlo=(LinearLayout)this.findViewById(javaa[x]);
linearlo.setVisibility(View.VISIBLE);
loadImage("http://192.168.1.112:8001/" + java[2],javapica[x]);
tvtext=(TextView)this.findViewById(javatexta[x]);
tvjiage=(TextView)this.findViewById(javajiagea[x]);
tvtext.setText(java[0]);
tvjiage.setText(java[1]+"元");
}
}
}
}
public static String[] getVideoJSON(String strUPhone,String strVD,int index)
{
String[] str=null;
try {
SoapObject rpc=new SoapObject(NAMESPACE, METHOD_NAME);
// 设置调用方法的参数值,如果没有参数,可以省略,但是我们一般都有参数的
rpc.addProperty("UPhone", strUPhone);
rpc.addProperty("VD", strVD);
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.bodyOut = rpc;
envelope.dotNet = true;
envelope.setOutputSoapObject(rpc);
HttpTransportSE ht=new HttpTransportSE(URL);
ht.debug=true;
ht.call(SOAP_ACTION, envelope);
SoapObject detail=(SoapObject) envelope.getResponse();
System.out.println("detail" + detail);
str=JsonToString(detail,index);
} catch (Exception e) {
e.printStackTrace();
}
return str;
}
@SuppressWarnings("null")
public static String[] JsonToString(SoapObject detail,int index) throws UnsupportedEncodingException
{
String[] namepricepic={"","","",""};
try {
String strJson=detail.getProperty(index).toString();
JSONObject dataJson=new JSONObject(strJson);
JSONArray tbVideo=dataJson.getJSONArray("tbVideo");
JSONObject info=tbVideo.getJSONObject(index);
namepricepic[0]=info.getString("VideoName");
namepricepic[1]=info.getString("VideoPrice");
namepricepic[2]=info.getString("VideoPic");
namepricepic[3]=info.getString("VideoPeople");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return namepricepic;
}
//url:下载图片的url
//id:ImageView控件的id
private void loadImage(final String url, final int id) {
// TODO Auto-generated method stub
//如果缓存过就会从缓存中取出图像,ImageCallback接口中方法也不会被执行
ImageView imageView = (ImageView) findViewById(id);
CallbackImpl callbackImpl = new CallbackImpl(imageView);
Drawable cacheImage = loader.loadDrawable(url, callbackImpl);
if(cacheImage!=null){
imageView.setImageDrawable(cacheImage);
}
}
}
问题简单了 回答的就是多啊 贴出完整 log 日志信息 把红色的部分全复制上来
[quote=引用 4 楼 wzysys1617 的回复:] [quote=引用 3 楼 sagittarius1988 的回复:] 首先,你定义的控件是否在 bmain.xml里,其次,你的bmain.xml是放在哪个资源文件夹下,有时可能跟测试机对应的dpi资源目录下,你没有定义这些控件
[quote=引用 3 楼 sagittarius1988 的回复:] 首先,你定义的控件是否在 bmain.xml里,其次,你的bmain.xml是放在哪个资源文件夹下,有时可能跟测试机对应的dpi资源目录下,你没有定义这些控件
首先,你定义的控件是否在 bmain.xml里,其次,你的bmain.xml是放在哪个资源文件夹下,有时可能跟测试机对应的dpi资源目录下,你没有定义这些控件
NullPointerException空指针是说你控件没有绑定到ID,你把所有红色贴出来看下,或者自己debug下就知道了,,,