アプリケーションと問題の説明 テキストベースの Android ゲームを作成しようとしています (聞かないでください ;-) )、何らかの理由でインテントを使用して新しいアクティビティを開始するのに問題があります。ゲームはウェルカム画面で始まります --> 新しいゲーム (ボタン) --> クラスの選択 (2 つのボタン、探偵/殺人者) --> 最初のゲーム アクティビティ
ゲーム内アクティビティには、画像ビュー、テキストビュー、続行ボタン (次のアクティビティにつながる)、およびほとんどの場合、戻るボタン (ゲーム/ストーリーのコンテキストに応じてブール値) が含まれます。
問題は、メニューから最初のゲーム アクティビティまでほぼ同じコードを使用しているにもかかわらず、次のアクティビティを開始するための続行ボタンを取得できないことです。私たちの考えは、レイアウト テンプレートとコンテンツ テンプレートの両方があり、画像リソース、文字列リソース、戻るボタンのブール値、および次のアクティビティの変数を設定するだけで新しいアクティビティを作成できるということです。 「つづく」から始まります。
コード これは私たちのコードです:
コンテンツ テンプレート:
package com.bsnoire;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
public class ContentTemplate extends Activity implements OnClickListener
{
protected int image, back, text;
protected Class<? extends Activity> cls;
@Override
public void onCreate(Bundle savedInstanceState)
{
setVariables();
super.onCreate(savedInstanceState);
setContentView(R.layout.content);
ImageView iv = (ImageView) findViewById(R.id.contentImageView);
TextView tv = (TextView) findViewById(R.id.contentTextView);
Button bBack = (Button) findViewById(R.id.contentbBack);
iv.setImageResource(image);
tv.setText(text);
bBack.setVisibility(back);
}
@Override
public void onDestroy()
{
this.finish();
}
//===============================================================================
@Override
public void onClick(View v)
{
switch(v.getId())
{
case R.id.contentbBack:
this.finish();
break;
case R.id.contentbCon:
Intent intent1 = new Intent(this, cls);
startActivity(intent1);
break;
}
}
public void setVariables()
{
}
}
Act1 (つまり、アクティビティ 1)
package com.bsnoire;
import com.bsnoire.R;
import android.app.Activity;
import android.os.Bundle;
public class Act1 extends ContentTemplate
{
/**
* Sets the variables in Act1
*/
@Override
public void setVariables()
{
image = R.drawable.p1;
back = 0;
text = R.string.A1S1;
cls = com.bsnoire.Act2.class;
}
}
Act2 は 1 と同じですが、他の変数があります。メニューでは、次のコード (スイッチ機能) で Act1 を参照します。
case R.id.bAbout:
Intent intent2 = new Intent(MainMenu.this, Act1.class);
startActivity(intent2);
break;
どちらが機能しますか!
コンパイル エラーも実行時エラーも発生しません。Act1 で「continue」を押しても、指でクリックしたときの緑色のマーク以外は何も起こりません。