매개변수를 사용하여 활동 시작
저는 안드로이드 개발에 아주 신참입니다.
게임에 대한 정보를 보여주는 활동을 만들고 시작하고 싶습니다.게임 ID가 필요한 정보를 보여줍니다.
이 게임 ID를 활동에 전달하려면 어떻게 해야 합니까?게임 아이디는 꼭 필요하기 때문에 아이디가 없으면 활동을 만들거나 시작하고 싶지 않습니다.
하나의 매개변수를 가진 하나의 생성자만 활동에 있는 것과 같습니다.
내가 어떻게 그럴 수 있을까?
감사해요.
집어넣습니다.int
새로운 것에 대한 당신의 아이디가 무엇인가요?Intent
.
Intent intent = new Intent(FirstActivity.this, SecondActivity.class);
Bundle b = new Bundle();
b.putInt("key", 1); //Your id
intent.putExtras(b); //Put your id to your next Intent
startActivity(intent);
finish();
그럼 새것에서 신분증을 챙기세요.Activity
:
Bundle b = getIntent().getExtras();
int value = -1; // or other values
if(b != null)
value = b.getInt("key");
활동을 호출할 때 사용하는 인텐트에 추가 데이터를 추가하기만 하면 됩니다.
호출자 활동에서:
Intent i = new Intent(this, TheNextActivity.class);
i.putExtra("id", id);
startActivity(i);
호출하는 활동의 onCreate() 내부:
Bundle b = getIntent().getExtras();
int id = b.getInt("id");
저는 두 번째 활동에서 정적인 방법으로 하는 것을 좋아합니다.
private static final String EXTRA_GAME_ID = "your.package.gameId";
public static void start(Context context, String gameId) {
Intent intent = new Intent(context, SecondActivity.class);
intent.putExtra(EXTRA_GAME_ID, gameId);
context.startActivity(intent);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
...
Intent intent = this.getIntent();
String gameId = intent.getStringExtra(EXTRA_GAME_ID);
}
그런 다음 첫 번째 활동(그리고 다른 곳에서도)을 통해 다음과 같은 작업을 수행합니다.
SecondActivity.start(this, "the.game.id");
코틀린 코드:
시작합니다.SecondActivity
:
startActivity(Intent(context, SecondActivity::class.java)
.putExtra(SecondActivity.PARAM_GAME_ID, gameId))
신분증 가져오기SecondActivity
:
class CaptureActivity : AppCompatActivity() {
companion object {
const val PARAM_GAME_ID = "PARAM_GAME_ID"
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val gameId = intent.getStringExtra(PARAM_GAME_ID)
// TODO use gameId
}
}
어디에gameId
가String?
(null일 수 있음)
기존 답변(데이터를 에 전달)Intent
에 전해진startActivity()
)에서 이 문제를 해결하는 일반적인 방법을 보여줍니다.다른 앱(예: 테스터 플러그인의 편집 작업 중 하나)에 의해 시작되는 작업을 생성하는 이상한 경우에 사용할 수 있는 다른 솔루션이 있습니다. 따라서 작업을 제어하지 않습니다.Intent
그것이 시작됩니다.Activity
.
기본 클래스를 생성할 수 있습니다.Activity
매개 변수가 있는 생성자를 가지고 다음과 같이 기본 클래스 생성자를 호출하는 기본 생성자를 가지고 있는 파생 클래스는 다음과 같습니다.
class BaseActivity extends Activity
{
public BaseActivity(String param)
{
// Do something with param
}
}
class DerivedActivity extends BaseActivity
{
public DerivedActivity()
{
super("parameter");
}
}
기본 클래스 생성자에게 전달하기 위해 매개 변수를 생성해야 하는 경우에는 정확한 값을 전달하는 함수 호출로 하드 코딩된 값을 바꾸기만 하면 됩니다.
언급URL : https://stackoverflow.com/questions/3913592/start-an-activity-with-a-parameter
'programing' 카테고리의 다른 글
Android 응용 프로그램에서 Intent를 사용하여 다른 활동 표시 (0) | 2023.10.24 |
---|---|
회귀 네트워크 교육 시 NaN 손실 (0) | 2023.10.24 |
jquery 로드 시 iframe 컨텐츠 높이 가져오기 (0) | 2023.10.24 |
레이저를 사용하여 자바스크립트 변수에 부울을 렌더링하려면 어떻게 해야 합니까? (0) | 2023.10.24 |
워드프레스의 사용자 정의 범주 트리 (0) | 2023.10.24 |