Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/211.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在android中调用一个方法-实例_Java_Android_Xml_Class_Methods - Fatal编程技术网

Java 在android中调用一个方法-实例

Java 在android中调用一个方法-实例,java,android,xml,class,methods,Java,Android,Xml,Class,Methods,我是Android/Java新手。我想修改一个简单的开源Android游戏。对我来说,用真实的例子学习编程要容易得多 目标:我想在游戏进入下一关或玩家开始新游戏时生成随机背景 已经:我找到了一种在用户启动应用程序时生成随机背景的方法,替换了以下代码: mBackgroundOrig = BitmapFactory.decodeResource(res, R.drawable.background, options); 与: 在: 并在values/randbkgnd

我是Android/Java新手。我想修改一个简单的开源Android游戏。对我来说,用真实的例子学习编程要容易得多

目标:我想在游戏进入下一关或玩家开始新游戏时生成随机背景

已经:我找到了一种在用户启动应用程序时生成随机背景的方法,替换了以下代码:

  mBackgroundOrig =
            BitmapFactory.decodeResource(res, R.drawable.background, options);
与:

在:

并在values/randbkgnd.XML中创建一个带有字符串数组的XML文件:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string-array name="random_background">
        <item name="background_01">@drawable/background01</item>
        <item name="background_02">@drawable/background02</item>
        <item name="background_03">@drawable/background03</item>
        <item name="background_04">@drawable/background04</item>
        <item name="background_05">@drawable/background05</item>
        <item name="background_06">@drawable/background06</item>
        <item name="background_07">@drawable/background07</item>
        <item name="background_08">@drawable/background08</item>
        <item name="background_09">@drawable/background09</item>
        <item name="background_10">@drawable/background10</item>
    </string-array>
</resources>

@可绘图/背景01
@可绘图/背景02
@可绘图/背景03
@可绘图/背景04
@可绘图/背景05
@可绘图/背景06
@可绘图/背景07
@可绘图/背景08
@可绘图/背景09
@可绘图/背景10
请求:请帮助我使用上述随机背景代码创建一个方法。我希望将此代码保存在一个单独的java文件中,并能够在玩家完成一个级别并进入下一个级别时从goToNextLevel()方法调用它:

public void goToNextLevel() {
    SharedPreferences sp =this.mContext.getSharedPreferences(
               BubbleShooterActivity.PREFS_NAME, Context.MODE_PRIVATE);
    currentLevel = sp.getInt(BubbleShooterActivity.PREFS_LEVEL_KEY_NAME, 0);
    int maxLevel = sp.getInt(BubbleShooterActivity.PREFS_UNLOCK_LEVEL_KEY_NAME, 0);     
    currentLevel++;
    if(maxLevel<=currentLevel){
        maxLevel=currentLevel;
    }
    sp.edit().putInt(BubbleShooterActivity.PREFS_LEVEL_KEY_NAME, currentLevel).putInt(BubbleShooterActivity.PREFS_UNLOCK_LEVEL_KEY_NAME, maxLevel).commit();
    if (currentLevel >= MAX_LEVEL_NUM) {
        currentLevel = 0;
    }
}
public void goToNextLevel(){
SharedReferences sp=this.mContext.getSharedReferences(
BubbleShooterActivity.PREFS_名称、Context.MODE_私有);
currentLevel=sp.getInt(BubbleShooterActivity.PREFS\u LEVEL\u KEY\u NAME,0);
int maxLevel=sp.getInt(BubbleShooterActivity.PREFS\u UNLOCK\u LEVEL\u KEY\u NAME,0);
currentLevel++;
如果(maxLevel=MAX\u LEVEL\u NUM){
currentLevel=0;
}
}
在:

我假设这对至少具有普通Java技能的人来说一定非常容易。请根据我的代码/游戏和分步说明或解释为我提供示例。

只需创建一个类(例如Background.class)


在使用onCreate()方法之前,我只是想知道,为什么我的问题没有得到任何解释就投了反对票?那么,我是否应该认为这是这个论坛的一个可怜的成员的恶作剧?或者我应该认为这是一个沮丧的java/Android程序员过度反应,不理解非常简单的怪异事实,有没有人在迫切需要帮助?
public void goToNextLevel() {
    SharedPreferences sp =this.mContext.getSharedPreferences(
               BubbleShooterActivity.PREFS_NAME, Context.MODE_PRIVATE);
    currentLevel = sp.getInt(BubbleShooterActivity.PREFS_LEVEL_KEY_NAME, 0);
    int maxLevel = sp.getInt(BubbleShooterActivity.PREFS_UNLOCK_LEVEL_KEY_NAME, 0);     
    currentLevel++;
    if(maxLevel<=currentLevel){
        maxLevel=currentLevel;
    }
    sp.edit().putInt(BubbleShooterActivity.PREFS_LEVEL_KEY_NAME, currentLevel).putInt(BubbleShooterActivity.PREFS_UNLOCK_LEVEL_KEY_NAME, maxLevel).commit();
    if (currentLevel >= MAX_LEVEL_NUM) {
        currentLevel = 0;
    }
}
package com.yourpackage.name;

public class Background{
    public <type of the image> RandomBackground(){
        TypedArray imgs = getResources().obtainTypedArray(R.array.random_background);
        Random rand = new Random();
        int rndInt = rand.nextInt(imgs.length());
        int resID = imgs.getResourceId(rndInt, 0);
        mBackgroundOrig = BitmapFactory.decodeResource(res, randBackground.resID, options);
        return mBackgroundOrig;
    }
}
mBackgroundOrig = background.RandomBackground();//add this


public void goToNextLevel() {
mBackgroundOrig = background.RandomBackground(); //to this
SharedPreferences sp =this.mContext.getSharedPreferences(
           BubbleShooterActivity.PREFS_NAME, Context.MODE_PRIVATE);
currentLevel = sp.getInt(BubbleShooterActivity.PREFS_LEVEL_KEY_NAME, 0);
int maxLevel = sp.getInt(BubbleShooterActivity.PREFS_UNLOCK_LEVEL_KEY_NAME, 0);     
currentLevel++;
if(maxLevel<=currentLevel){
    maxLevel=currentLevel;
}
sp.edit().putInt(BubbleShooterActivity.PREFS_LEVEL_KEY_NAME, currentLevel).putInt(BubbleShooterActivity.PREFS_UNLOCK_LEVEL_KEY_NAME, maxLevel).commit();
if (currentLevel >= MAX_LEVEL_NUM) {
    currentLevel = 0;
}
Background background;