комплект Android не будет переноситься

1

Привет, я новичок на этом сайте, новичок в программировании для 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, который является андроидным приложением. (Я протестировал этот код на своем компьютере, прежде чем покинуть дом, в том же выпуске.)

  • 0
    когда вы делаете это item = spin.getItemAtPosition(position).toString(); ? до или после startActivity(iCreate); ?
  • 0
    После того, как в выбранном методе
Показать ещё 3 комментария
Теги:
database
bundle

5 ответов

0

Если вы использовали этот код

    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);
}
0

Во втором действии используйте

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.

0

Я не уверен, где ваша функция 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));

        }}
  • 0
    OnClick устанавливается там, где намерение ... намерение является частью switch / case внутри метода onclick. Var "item" является частью выбранного метода tge
0
 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
0

вы не вкладываете какие-либо пакеты в намерениях, но пытаетесь получить во второй активности. Используйте этот способ:

// 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");
  • 0
    Позиция является частью функции onItemSelected. Как я могу получить выбранные позиции позиции?
  • 0
    если начинать действие где-либо из значения хранилища onItemSelected где-то, тогда читайте it.try public static String item="";
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню