Java Android:照片显示活动中未显示照片
编辑:我知道出了什么问题,就像我说的,我把包名从Java Android:照片显示活动中未显示照片,java,android,Java,Android,编辑:我知道出了什么问题,就像我说的,我把包名从com.musicbynumbers.pianoscales改为com.musicbynumbers.pianoscalesfull。但是我忘了 change int id=getResources().getIdentifier(“com.musicbynumbers.pianoscalesfull:drawable/”+gotScale,null,null) 所有的代码都很好。非常感谢你的帮助 好的,这只是一些beckground的信息,在我进
com.musicbynumbers.pianoscales
改为com.musicbynumbers.pianoscalesfull
。但是我忘了
change int id=getResources().getIdentifier(“com.musicbynumbers.pianoscalesfull:drawable/”+gotScale,null,null)代码>
所有的代码都很好。非常感谢你的帮助
好的,这只是一些beckground的信息,在我进入确切的问题之前:
我正在使用eclipse。几周前,我在play store上发布了我的第一个应用程序——钢琴音阶应用程序,并获得了许可。两天前,我意识到许可证阻止了一些付费用户使用它。我注释掉了许可证并进行了更新,但我的密钥库已损坏。因此,我从商店中删除了应用程序并更改了软件包名称。该应用程序是一个菜单,可让您进入显示所选图像的显示活动。当我再次测试应用程序时,我发现只显示默认的android图像。我不认为我改变了子菜单中的任何代码或显示活动,因为它正在工作,但我会把他们无论如何。顺便说一句,这是我的第一个应用程序,该应用程序将于明天随书发布,所以这对我来说是一个真实的11小时情况
这是导致活动“显示”的几个子菜单之一
这是显示活动,其中显示选定图像,但现在仅显示默认图像
package com.musicbynumbers.scales;
import android.app.Activity;
import android.os.Bundle;
import android.widget.ImageView;
import com.musicbynumbers.pianoscalesfull.R;
public class display extends Activity {
ImageView displayScale;
String gotScale;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.display);
Initalize();
gotScale = getIntent().getStringExtra("key");
ImageView displayScale = (ImageView) findViewById(R.id.displayImage);
//aflatmaj-gotscale
int id = getResources().getIdentifier("com.musicbynumbers.pianoscales:drawable/" + gotScale, null, null);
displayScale.setImageResource(id);
}
private void Initalize() {
// TODO Auto-generated method stub
displayScale = (ImageView) findViewById(R.id.displayImage);
gotScale = "ic_launcher.png";
}}
我真的很感谢你的帮助,因为我的时间不多了
编辑:
日志:
03-11 18:38:00.194: I/ActivityManager(59): Starting activity: Intent { cmp=com.musicbynumbers.pianoscalesfull/com.musicbynumbers.scales.majorScales }
03-11 18:38:00.824: W/ActivityManager(59): Activity pause timeout for HistoryRecord{45f03618 com.musicbynumbers.pianoscalesfull/com.musicbynumbers.scales.MainMenu}
03-11 18:38:03.284: I/ActivityManager(59): Displayed activity com.musicbynumbers.pianoscalesfull/com.musicbynumbers.scales.majorScales: 2454 ms (total 2454 ms)
03-11 18:38:07.854: I/ActivityManager(59): Starting activity: Intent { cmp=com.musicbynumbers.pianoscalesfull/com.musicbynumbers.scales.display (has extras) }
03-11 18:38:08.234: I/WindowManager(59): Setting rotation to 1, animFlags=1
03-11 18:38:08.404: I/ActivityManager(59): Config changed: { scale=1.0 imsi=310/260 loc=en_US touch=3 keys=2/1/2 nav=3/1 orien=2 layout=18 uiMode=17 seq=32}
03-11 18:38:09.616: I/ActivityManager(59): Displayed activity com.musicbynumbers.pianoscalesfull/com.musicbynumbers.scales.display: 1384 ms (total 1384 ms)
03-11 18:38:13.123: D/dalvikvm(59): GC_EXPLICIT freed 3329 objects / 183760 bytes in 462ms
我不明白:
在显示活动中,您有:ImageView显示比例代码>在开头声明,然后再次声明:ImageView displayScale=(ImageView)findViewById(R.id.displayImage)代码>
这主要是一个问题,因为你得到了Initalize();就在那里
如果你说除了默认的安卓图像,你什么都没有收到,那么很明显
gotScale = getIntent().getStringExtra("key");
不工作,剩下的就是:gotScale=“ic_launcher.png”代码>来自初始化
在获取图像之前,请尝试记录gotScale
参数,以查看图像的内容
编辑:
要记录:
Log.d(“ActivityName”,“要显示的消息”)
并使用cmd监视日志猫以查看日志消息
或者,您也可以向大家敬酒,看看gotScale的内容是什么,我还没有从我这边测试代码。所以你可以把它当作一个建议。在检查代码之后,它看起来很奇怪。您能否记录返回的标识符并对其进行验证
//一个很好的替代品,你甚至可以试试。
//获取图标
希望这将帮助您节省一些时间。:) 我看到,Iv'e将oncreate中的第二个更改为displayScale=(ImageView)findViewById(R.id.displayImage);我在模拟器上测试它,“在你得到图像之前,试着记录gotScale参数,看看它能保存什么。”我该怎么做?抱歉,我是新来的。当我点击amajb后,它给出了“amaj”,这样正确的数据就进入了gotData。我发现了什么问题,就像我说的,我把包名从com.musicbynumbers.pianoscales改为com.musicbynumbers.pianoscalesfull。但是我忘了更改int id=getResources().getIdentifier(“com.musicbynumbers.pianoscalesfull:drawable/”+gotScale,null,null);所有的代码都很好。非常感谢你的帮助。有什么东西需要放在“drawable”里吗?还是就这样放着。这似乎很明显,但我相对来说是新来的。记录标识符,你的意思是复制日志猫的那一部分吗?是否需要在“drawable”中输入任何内容,还是只保留这样的内容。这似乎很明显,但我相对来说是新来的。记录标识符你的意思是复制日志猫的那一部分吗?我把日志猫添加到了主要问题中我发现了什么问题,就像我说的,我把包名从com.musicbynumbers.pianoscales改为com.musicbynumbers.pianoscalesfull。但是我忘了更改int id=getResources().getIdentifier(“com.musicbynumbers.pianoscalesfull:drawable/”+gotScale,null,null);所有的代码都很好。非常感谢您的帮助。很高兴知道您找到了解决方案。无论如何,这里的日志记录意味着在日志中检查您的id,并匹配它是否调用了所需的id。你早就知道问题出在哪里了。干杯
gotScale = getIntent().getStringExtra("key");
int id = getResources().getIdentifier("com.musicbynumbers.pianoscales:drawable/" + gotScale, null, null);
displayScale.setImageResource(id);
String uri = "drawable/"+gotScale;
int id = getResources().getIdentifier(uri, "drawable", getPackageName()); // your res id.