Привет, я новичок на этом сайте, новичок в программировании для Android...
Каждый раз, когда я нажимаю кнопку, чтобы перейти к следующему действию, я получаю силу. Я знаю, что деятельность работает, потому что я прокомментировал пакеты. Кто-нибудь знает, что я делаю неправильно?
// click button on 1st activity
Intent iCreate = new
Intent("silver.asw.charactersheet.CREATECHARACTER");
iCreate.putExtra("cname",item);
startActivity(iCreate);
// on item select
item = spin.getItemAtPosition(position).toString();
// spinner is being populated by sql database
// 2nd activity
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.character);
TextView character = (TextView)findViewById(R.id.tvViewCharacter);
Bundle b = this.getIntent().getExtras();
String item = b.getString("cname");
character.setText(item);
}
Кроме того, я не имею никаких предупреждений или не могу проверить свой логарифм, поскольку я использую AIDE, который является андроидным приложением. (Я протестировал этот код на своем компьютере, прежде чем покинуть дом, в том же выпуске.)
Если вы использовали этот код
Intent iCreate = new Intent("silver.asw.charactersheet.CREATECHARACTER");
iCreate.putExtra("cname",item);
startActivity(iCreate);
В вашей второй деятельности вы можете использовать это.
// 2nd activity
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.character);
TextView character = (TextView)findViewById(R.id.tvViewCharacter);
String item = getIntent().getExtras()..getString("cname");
character.setText(item);
}
Или другим способом, который вы можете использовать,
Intent iCreate = new Intent("silver.asw.charactersheet.CREATECHARACTER");
Bundle b=new Bundle();
b.putString("cname", item);
iCreate.putExtras(bundle);
startActivity(iCreate);
В вашем втором действии
/ 2nd activity
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.character);
TextView character = (TextView)findViewById(R.id.tvViewCharacter);
Bundle b = getIntent().getExtras();
String item = b.getString("cname");
character.setText(item);
}
Во втором действии используйте
String item = getIntent().getStringExtra("cname");
вместо
Bundle b = this.getIntent().getExtras();
// b is null, because you use intent.putExtra(string, string). you should
// use above method to get the data.
String item = b.getString("cname");
что вызовет исключение NULLPointerException.
Я не уверен, где ваша функция onClick, но попробуйте что-то вроде этого Ex.
кнопка инициализации
Button b = (Button) findViewById(R.id.button1);
b.setOnClickListener(new OnClickListener() {
//start activity
public void onClick(View v) {
startActivity(new Intent(Main.this, StartPage.class));
}}
Bundle b = this.getIntent().getExtras();
замените приведенную выше строку ниже в первом действии
Bundle bundle = new Bundle();
Bundle b = getIntent().getExtras();//from 2 activity you can call as it no need to have this
вы не вкладываете какие-либо пакеты в намерениях, но пытаетесь получить во второй активности. Используйте этот способ:
// 1nd activity
item = spin.getItemAtPosition(position).toString();
Bundle bundle = new Bundle();
bundle.putString("cname", item);
iCreate.putExtras(bundle);
// 2nd activity
Bundle bundle = this.getIntent().getExtras();
String name = bundle.getString("cname");
public static String item="";
item = spin.getItemAtPosition(position).toString();
? до или послеstartActivity(iCreate);
?