从Android其它类显示图像 [英] displaying image from other class in android
本文介绍了从Android其它类显示图像的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我通过调用其他类显示在活动的图像,但它不显示图像它显示我error.my code是如下
公共类VideosActivity延伸活动{
// DrawView画;
浮动= 0;
浮B = 0;
ImageView的形象;
MotionEvent事件;
按钮后退;
按钮旁边;
的TextView吨;
字符串信息=;
诠释计数= 0;
FirstImage I =新FirstImage(本);
TableLayout TL;
RU的TableRow,RM,RL,RLM; @覆盖
公共无效的onCreate(捆绑savedInstanceState){
super.onCreate(savedInstanceState);
的setContentView(R.layout.videos_layout);
I =(FirstImage)findViewById(R.id.first);
//回来=(按钮)findViewById(R.id.button1);
//下一=(按钮)findViewById(R.id.button2);
//
// addListenerOnButton();
} 私人无效addListenerOnButton(){
// TODO自动生成方法存根 如果(计数== 0)
back.setEnabled(假); next.setOnClickListener(新OnClickListener(){
公共无效的onClick(查看为arg0){
如果(计数== 0){
image.setImageResource(R.drawable.hand);
back.setEnabled(真);
算上++; addListenerOnButton(); }
否则如果(计数== 1){
image.setImageResource(R.drawable.tissue);
算上++; addListenerOnButton(); } 否则如果(计数== 2){
image.setImageResource(R.drawable.cellconstfinal1);
算上++; addListenerOnButton();
}
否则如果(计数== 3){
//核
image.setImageResource(R.drawable.cellconstfinal1);
算上++; addListenerOnButton(); }
否则,如果(计数== 4){
// nchromosome
image.setImageResource(R.drawable.hand);
算上++; addListenerOnButton(); }
其他
{ //双螺旋
算上++;
image.setImageResource(R.drawable.handash1);
next.setEnabled(假); addListenerOnButton(); } }
}); back.setOnClickListener(新OnClickListener(){
公共无效的onClick(查看为arg0){
如果(计数== 1){
image.setImageResource(R.drawable.human);
back.setEnabled(假);
计数 - ; addListenerOnButton(); }
否则如果(计数== 2){
image.setImageResource(R.drawable.hand);
计数 - ; addListenerOnButton(); } 否则如果(计数== 3){
image.setImageResource(R.drawable.tissue);
计数 - ; addListenerOnButton();
}
否则,如果(计数== 4){
image.setImageResource(R.drawable.cellconstfinal1);
计数 - ; addListenerOnButton(); }
否则,如果(计数== 5){
//核
image.setImageResource(R.drawable.tissue);
计数 - ; addListenerOnButton();
}
其他{
//染色体
//计数== 6
image.setImageResource(R.drawable.cellconstfinal1);
计数 - ; addListenerOnButton();
next.setEnabled(真); }
}
});
}
这是显示我error.i我不是理解为什么它显示下面的错误我下面。
05-10 19:27:32.097:E / AndroidRuntime(638):致命异常:主要
05-10 19:27:32.097:E / AndroidRuntime(638):了java.lang.RuntimeException:无法实例活动ComponentInfo {com.example.androidtablayout / com.example.androidtablayout.VideosActivity}:显示java.lang.NullPointerException
05-10 19:27:32.097:E / AndroidRuntime(638):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2585)
05-10 19:27:32.097:E / AndroidRuntime(638):在android.app.ActivityThread.startActivityNow(ActivityThread.java:2503)
05-10 19:27:32.097:E / AndroidRuntime(638):在android.app.LocalActivityManager.moveToState(LocalActivityManager.java:127)
05-10 19:27:32.097:E / AndroidRuntime(638):在android.app.LocalActivityManager.startActivity(LocalActivityManager.java:339)
05-10 19:27:32.097:E / AndroidRuntime(638):在android.widget.TabHost $ IntentContentStrategy.getContentView(TabHost.java:651)
05-10 19:27:32.097:E / AndroidRuntime(638):在android.widget.TabHost.setCurrentTab(TabHost.java:323)
05-10 19:27:32.097:E / AndroidRuntime(638):在android.widget.TabHost $ 2.onTabSelectionChanged(TabHost.java:129)
05-10 19:27:32.097:E / AndroidRuntime(638):在android.widget.TabWidget $ TabClickListener.onClick(TabWidget.java:453)
05-10 19:27:32.097:E / AndroidRuntime(638):在android.view.View.performClick(View.java:2408)
05-10 19:27:32.097:E / AndroidRuntime(638):在android.view.View $ PerformClick.run(View.java:8816)
05-10 19:27:32.097:E / AndroidRuntime(638):在android.os.Handler.handleCallback(Handler.java:587)
05-10 19:27:32.097:E / AndroidRuntime(638):在android.os.Handler.dispatchMessage(Handler.java:92)
05-10 19:27:32.097:E / AndroidRuntime(638):在android.os.Looper.loop(Looper.java:123)
05-10 19:27:32.097:E / AndroidRuntime(638):在android.app.ActivityThread.main(ActivityThread.java:4627)
05-10 19:27:32.097:E / AndroidRuntime(638):在java.lang.reflect.Method.invokeNative(本机方法)
05-10 19:27:32.097:E / AndroidRuntime(638):在java.lang.reflect.Method.invoke(Method.java:521)
05-10 19:27:32.097:E / AndroidRuntime(638):在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:868)
05-10 19:27:32.097:E / AndroidRuntime(638):在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
05-10 19:27:32.097:E / AndroidRuntime(638):在dalvik.system.NativeStart.main(本机方法)
05-10 19:27:32.097:E / AndroidRuntime(638):致:显示java.lang.NullPointerException
05-10 19:27:32.097:E / AndroidRuntime(638):在android.content.ContextWrapper.getResources(ContextWrapper.java:80)
05-10 19:27:32.097:E / AndroidRuntime(638):在android.view.View<&初始化GT;(View.java:1810)
05-10 19:27:32.097:E / AndroidRuntime(638):在android.widget.ImageView<&初始化GT;(ImageView.java:103)
05-10 19:27:32.097:E / AndroidRuntime(638):在com.example.androidtablayout.FirstImage<&初始化GT;(FirstImage.java:8)
05-10 19:27:32.097:E / AndroidRuntime(638):在com.example.androidtablayout.VideosActivity<&初始化GT;(VideosActivity.java:27)
05-10 19:27:32.097:E / AndroidRuntime(638):在java.lang.Class.newInstanceImpl(本机方法)
05-10 19:27:32.097:E / AndroidRuntime(638):在java.lang.Class.newInstance(Class.java:1429)
05-10 19:27:32.097:E / AndroidRuntime(638):在android.app.Instrumentation.newActivity(Instrumentation.java:1021)
05-10 19:27:32.097:E / AndroidRuntime(638):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2577)
05-10 19:27:32.097:E / AndroidRuntime(638):18 ...更多
05-10 19:27:41.897:I /流程(638):发送信号。 PID:638 SIG:9
第一个图像.jav code是present这里...........
公共类FirstImage扩展了ImageView的{
公共FirstImage(上下文的背景下){
超级(上下文);
// TODO自动生成构造函数存根 }
}
视频布局为code是如下....
<?XML版本=1.0编码=UTF-8&GT?;<滚动型的xmlns:机器人=http://schemas.android.com/apk/res/android
机器人:layout_width =FILL_PARENT
机器人:layout_height =FILL_PARENT
>
<! - 为视频屏幕设计 - >
< TableLayout
机器人:ID =@ + ID / tablelayout
机器人:layout_width =FILL_PARENT
机器人:layout_height =FILL_PARENT
机器人:stretchColumns =1> <的TableRow
机器人:ID =@ + ID / tableRow1
机器人:layout_width =WRAP_CONTENT
机器人:layout_height =WRAP_CONTENT> <的TextView
机器人:ID =@ + ID / TextView的
机器人:layout_width =WRAP_CONTENT
机器人:layout_height =WRAP_CONTENT
机器人:填充=15dip
机器人:文字=图片上点击它会告诉哪里是位于人体或细胞的DNA
机器人:TEXTSIZE =18dip/>
< /&的TableRow GT; <的TableRow
机器人:ID =@ + ID / tableRow2
机器人:layout_width =WRAP_CONTENT
机器人:layout_height =WRAP_CONTENT> <的FrameLayout
机器人:layout_width =WRAP_CONTENT
机器人:layout_height =WRAP_CONTENT>
< com.example.AndroidTablayout.FirstImage
机器人:ID =@ + ID /第一
机器人:layout_width =FILL_PARENT
机器人:layout_height =FILL_PARENT
机器人:SRC =@绘制/人/>
< /&的FrameLayout GT;
< /&的TableRow GT; <的TableRow
机器人:ID =@ + ID / tableRow3
机器人:layout_width =WRAP_CONTENT
机器人:layout_height =WRAP_CONTENT> <的LinearLayout
机器人:ID =@ + ID / linearLayout1
机器人:layout_width =WRAP_CONTENT
机器人:layout_height =WRAP_CONTENT> <按钮
机器人:ID =@ + ID /按钮1
机器人:layout_width =100dp
机器人:layout_height =WRAP_CONTENT
机器人:文字=返回/> <按钮
机器人:ID =@ + ID /按钮2
机器人:layout_width =100dp
机器人:layout_height =WRAP_CONTENT
机器人:文字=下一步/> < / LinearLayout中> < /&的TableRow GT;
<的TableRow
机器人:ID =@ + ID / tableRow4
机器人:layout_width =WRAP_CONTENT
机器人:layout_height =WRAP_CONTENT>
<的TextView
机器人:ID =@ + ID / textView1
机器人:layout_width =WRAP_CONTENT
机器人:layout_height =WRAP_CONTENT
机器人:填充=15dip
机器人:文字=请不要介意
机器人:TEXTSIZE =18dip/>
< /&的TableRow GT; < / TableLayout>
< /滚动型>
解决方案
编辑:
检查这个答案:
也许你需要实现与AttributeSet中的参数构造函数。
I am displaying image in the activity by calling other class but it is not displaying the image it is showing me the error.my code is as follow
public class VideosActivity extends Activity {
//DrawView draw;
float a=0;
float b=0;
ImageView image;
MotionEvent event;
Button back ;
Button next;
TextView t;
String info = "";
int count =0;
FirstImage i= new FirstImage (this);
TableLayout tl;
TableRow ru,rm,rl,rlm;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.videos_layout);
i=(FirstImage)findViewById(R.id.first);
//back = (Button) findViewById(R.id.button1);
// next = (Button) findViewById(R.id.button2);
//
// addListenerOnButton();
}
private void addListenerOnButton() {
// TODO Auto-generated method stub
if (count == 0)
back.setEnabled(false);
next.setOnClickListener( new OnClickListener() {
public void onClick(View arg0) {
if(count==0){
image.setImageResource(R.drawable.hand);
back.setEnabled(true);
count++;
addListenerOnButton();
}
else if (count==1){
image.setImageResource(R.drawable.tissue);
count++;
addListenerOnButton();
}
else if (count==2){
image.setImageResource(R.drawable.cellconstfinal1);
count++;
addListenerOnButton();
}
else if (count==3){
//nucleus
image.setImageResource(R.drawable.cellconstfinal1);
count++;
addListenerOnButton();
}
else if (count==4){
//nchromosome
image.setImageResource(R.drawable.hand);
count++;
addListenerOnButton();
}
else
{ //double helix
count++;
image.setImageResource(R.drawable.handash1);
next.setEnabled(false);
addListenerOnButton();
}
}
});
back.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
if(count==1){
image.setImageResource(R.drawable.human);
back.setEnabled(false);
count--;
addListenerOnButton();
}
else if (count==2){
image.setImageResource(R.drawable.hand);
count--;
addListenerOnButton();
}
else if (count==3){
image.setImageResource(R.drawable.tissue);
count--;
addListenerOnButton();
}
else if (count==4){
image.setImageResource(R.drawable.cellconstfinal1);
count--;
addListenerOnButton();
}
else if (count==5){
//nucleus
image.setImageResource(R.drawable.tissue);
count--;
addListenerOnButton();
}
else {
//chromosome
//count==6
image.setImageResource(R.drawable.cellconstfinal1);
count--;
addListenerOnButton();
next.setEnabled(true);
}
}
});
}
it is showing me the following error.i am not understanding why it is showing me following error.
05-10 19:27:32.097: E/AndroidRuntime(638): FATAL EXCEPTION: main
05-10 19:27:32.097: E/AndroidRuntime(638): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.androidtablayout/com.example.androidtablayout.VideosActivity}: java.lang.NullPointerException
05-10 19:27:32.097: E/AndroidRuntime(638): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2585)
05-10 19:27:32.097: E/AndroidRuntime(638): at android.app.ActivityThread.startActivityNow(ActivityThread.java:2503)
05-10 19:27:32.097: E/AndroidRuntime(638): at android.app.LocalActivityManager.moveToState(LocalActivityManager.java:127)
05-10 19:27:32.097: E/AndroidRuntime(638): at android.app.LocalActivityManager.startActivity(LocalActivityManager.java:339)
05-10 19:27:32.097: E/AndroidRuntime(638): at android.widget.TabHost$IntentContentStrategy.getContentView(TabHost.java:651)
05-10 19:27:32.097: E/AndroidRuntime(638): at android.widget.TabHost.setCurrentTab(TabHost.java:323)
05-10 19:27:32.097: E/AndroidRuntime(638): at android.widget.TabHost$2.onTabSelectionChanged(TabHost.java:129)
05-10 19:27:32.097: E/AndroidRuntime(638): at android.widget.TabWidget$TabClickListener.onClick(TabWidget.java:453)
05-10 19:27:32.097: E/AndroidRuntime(638): at android.view.View.performClick(View.java:2408)
05-10 19:27:32.097: E/AndroidRuntime(638): at android.view.View$PerformClick.run(View.java:8816)
05-10 19:27:32.097: E/AndroidRuntime(638): at android.os.Handler.handleCallback(Handler.java:587)
05-10 19:27:32.097: E/AndroidRuntime(638): at android.os.Handler.dispatchMessage(Handler.java:92)
05-10 19:27:32.097: E/AndroidRuntime(638): at android.os.Looper.loop(Looper.java:123)
05-10 19:27:32.097: E/AndroidRuntime(638): at android.app.ActivityThread.main(ActivityThread.java:4627)
05-10 19:27:32.097: E/AndroidRuntime(638): at java.lang.reflect.Method.invokeNative(Native Method)
05-10 19:27:32.097: E/AndroidRuntime(638): at java.lang.reflect.Method.invoke(Method.java:521)
05-10 19:27:32.097: E/AndroidRuntime(638): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
05-10 19:27:32.097: E/AndroidRuntime(638): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
05-10 19:27:32.097: E/AndroidRuntime(638): at dalvik.system.NativeStart.main(Native Method)
05-10 19:27:32.097: E/AndroidRuntime(638): Caused by: java.lang.NullPointerException
05-10 19:27:32.097: E/AndroidRuntime(638): at android.content.ContextWrapper.getResources(ContextWrapper.java:80)
05-10 19:27:32.097: E/AndroidRuntime(638): at android.view.View.<init>(View.java:1810)
05-10 19:27:32.097: E/AndroidRuntime(638): at android.widget.ImageView.<init>(ImageView.java:103)
05-10 19:27:32.097: E/AndroidRuntime(638): at com.example.androidtablayout.FirstImage.<init>(FirstImage.java:8)
05-10 19:27:32.097: E/AndroidRuntime(638): at com.example.androidtablayout.VideosActivity.<init>(VideosActivity.java:27)
05-10 19:27:32.097: E/AndroidRuntime(638): at java.lang.Class.newInstanceImpl(Native Method)
05-10 19:27:32.097: E/AndroidRuntime(638): at java.lang.Class.newInstance(Class.java:1429)
05-10 19:27:32.097: E/AndroidRuntime(638): at android.app.Instrumentation.newActivity(Instrumentation.java:1021)
05-10 19:27:32.097: E/AndroidRuntime(638): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2577)
05-10 19:27:32.097: E/AndroidRuntime(638): ... 18 more
05-10 19:27:41.897: I/Process(638): Sending signal. PID: 638 SIG: 9
first image .jav code is present here ...........
public class FirstImage extends ImageView {
public FirstImage(Context context) {
super(context);
// TODO Auto-generated constructor stub
}
}
videos layout is code is as follow ....
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<!-- Screen Design for VIDEOS -->
<TableLayout
android:id="@+id/tablelayout"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:stretchColumns="1">
<TableRow
android:id="@+id/tableRow1"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="15dip"
android:text="pic on click which will tell where is the dna located in human body or cell "
android:textSize="18dip" />
</TableRow>
<TableRow
android:id="@+id/tableRow2"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<FrameLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<com.example.AndroidTablayout.FirstImage
android:id="@+id/first"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:src="@drawable/human"/>
</FrameLayout>
</TableRow>
<TableRow
android:id="@+id/tableRow3"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<LinearLayout
android:id="@+id/linearLayout1"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<Button
android:id="@+id/button1"
android:layout_width="100dp"
android:layout_height="wrap_content"
android:text="Back" />
<Button
android:id="@+id/button2"
android:layout_width="100dp"
android:layout_height="wrap_content"
android:text="Next" />
</LinearLayout>
</TableRow>
<TableRow
android:id="@+id/tableRow4"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="15dip"
android:text="please don't mind "
android:textSize="18dip" />
</TableRow>
</TableLayout>
</ScrollView>
解决方案
EDIT: Check this answer:
Maybe you need to implement the constructor with the AttributeSet parameter.
这篇关于从Android其它类显示图像的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文