相关疑难解决方法(0)

"这个"背景是什么意思?

我通过互联网查看了很多android教程.在这些教程中,他们this在各处使用上下文.我知道thisJava中的关键字意味着什么,但我不能this在Android编程中使用关键字.例如,在AlertDialog.Builderdeveloper.android.com网站上,在Context的参数中只有一个引用,但我不知道这this意味着什么.

java android

3
推荐指数
1
解决办法
8253
查看次数

android中的每个活动都有自己的上下文吗?在单个应用程序中具有多个活动的方案是什么

我正在阅读链接以了解android中的上下文.我还有一个问题,每个活动都有自己的背景吗?请考虑我是初级水平的机器人学习者.

android android-context

3
推荐指数
1
解决办法
122
查看次数

class_name.this和this之间有什么不同

我看到一些代码class_name.this用作其上下文的参数,有时this直接在另一个演示代码中使用.我可以假设这this是一个缩写class_name.this吗?

java android

2
推荐指数
1
解决办法
328
查看次数

获取基本活动意图中的当前活动

我有一个BaseActivity类,可以在其他活动中进行扩展。我在底部有一个菜单,其中包含5个按钮。当前,每当单击菜单按钮时,我都会使用setOnClickListener,并且在每个活动中都重复了代码。显然,这不是一个好习惯。如果我必须进行一些小的更改,则必须在每项活动中进行编辑,而这会变得很麻烦。因此,我试图通过在BaseActivity中放置不同的方法并在xml onClick中调用该方法来对其进行优化。

下面的代码说我目前在MainActivity.this上,它将打开FindActivity.class。如果代码在MainActivity类中,则可以使用以下代码

Public Class MainActivity extends BaseActivity{

        Intent intent = new Intent(MainActivity.this, FindActivity.class);
        startActivity(intent);
}
Run Code Online (Sandbox Code Playgroud)

但是我想要达到的目的是在BaseActivity中拥有以上代码,而该代码显然将由MainActivity进行扩展。

Public Class BaseActivity extends ActionBarActivity{

        Intent intent = new Intent("This should be MainActivity.class", FindActivity.class);
        startActivity(intent);
}
Run Code Online (Sandbox Code Playgroud)

现在,这里的问题是我不确定在使用MainActivity时如何在BaseActivity的Intent参数中获取MainActivity.this。基本上我不确定如何获得上下文。

任何帮助将不胜感激。

如果以上不清楚,请告诉我,需要更多说明。

提前致谢。

performance android android-intent android-layout android-activity

2
推荐指数
1
解决办法
1万
查看次数

如何避免"this"作为Class参数

我不认为它非常适合this用作类参数,因为如果对象的初始化顺序不正确,可能会出现错误.

什么是避免这种情况的最佳做法?

例:

public class Game{

    private Player p1, p2, currentPlayer;
    private Board board;

    Game() {
        board = new Board(this);
    }

    private boolean hasFieldsToBeClicked() {
            return board.checkFieldsToBeClicked();
        }
Run Code Online (Sandbox Code Playgroud)

java constructor

2
推荐指数
1
解决办法
91
查看次数

为什么我们需要将Context传递给View?

每个Activity都是一个Context.每个View都需要一个Context.是否正确地说当我们将Context传递给View时,我们基本上是通过传递Context来向某个Activity添加一个View?

android android-context

1
推荐指数
1
解决办法
432
查看次数

从Android中的自定义适配器启动活动

我正在尝试ActivityListViewAndroid中的自定义适配器启动.我正在声明上下文,但Logcat显示找不到Context.我在这里上传我的代码

    @Override
public View getView(final int position, View convertView, ViewGroup parent) {
    // convert view = design
    View v = convertView;
    //context = this;

    if (v == null) {
        holder = new ViewHolder();
        holder = new ViewHolder();
        v = vi.inflate(Resource, null);
        holder.imageview = (ImageView) v.findViewById(R.id.ivImage);
        holder.tvName = (TextView) v.findViewById(R.id.tvName);
        holder.tvDescription = (TextView) v.findViewById(R.id.tvDescriptionn);
        holder.tvDOB = (TextView) v.findViewById(R.id.tvDateOfBirth);
        holder.tvCountry = (TextView) v.findViewById(R.id.tvCountry);
        holder.tvHeight = (TextView) v.findViewById(R.id.tvHeight);
        holder.tvSpouse = (TextView) v.findViewById(R.id.tvSpouse);
        holder.tvChildren = (TextView) v.findViewById(R.id.tvChildren);
        v.setTag(holder);
    } else …
Run Code Online (Sandbox Code Playgroud)

android android-intent android-activity

0
推荐指数
1
解决办法
2217
查看次数

使用getSharedPreferences android?

这是save()我的应用程序中的方法:

public void save() {
    Context context;
    SharedPreferences sp = context.getSharedPreferences("gameSave",
            Context.MODE_PRIVATE);
    SharedPreferences.Editor editor = sp.edit();

    editor.putInt("X", player.getX());
    editor.putInt("Y", player.getY());
    editor.putInt("level", player.getLevel());
    editor.putFloat("xp", player.getXp());
    editor.commit();
}
Run Code Online (Sandbox Code Playgroud)

我一直试图让它工作一段时间,但这getSharedPreferences (String name, int mode)对我来说并没有起作用.它不会出现在它自己的context.getSharedPreferences()工作上,但是NullPointerException由于我的背景,我认为这会产生一个.我已经尝试save(Context context){}过构造函数,但是从该方法内部声明的上下文的另一个方法调用它也不起作用.我看了很多例子,但没有一个能为我效劳.那我怎么getSharedPreferences()去上班?

编辑:我有一个类GameScreen和一个类SaveManager.当我在Gamescreen中保存时,这是我使用的代码:

Savemanager savemanager;
savemanager.save();
state = GameState.Running;
Run Code Online (Sandbox Code Playgroud)

我有我的类SaveManager:

package com.package.game;

import android.app.Activity;
import android.content.Context;
import android.content.SharedPreferences;

public class SaveManager extends Activity {

private Player player = GameScreen.getPlayer();

public void save() {
    SharedPreferences sp = getSharedPreferences("gameSave", …
Run Code Online (Sandbox Code Playgroud)

android sharedpreferences

-2
推荐指数
1
解决办法
1万
查看次数