2017-01-16 4 views
0

mainActivityでインテントを受け取った後にレイアウトを変更しようとすると、問題が発生しました。私は2つのクラスレイアウト変更時に2つのアクティビティアプリがクラッシュする

MainActivityを持って

public class MainActivity extends Activity { 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    Log.e(TAG, "onCreate"); 
    MainActivity.context = getApplicationContext(); 

    //two Intents are received 
    Intent i = this.getIntent(); 
    Bundle extras = i.getExtras(); 
    if(extras != null){ 
     if(extras.containsKey("message")) 
     { //another intent is received (works fine)} 
    if(extras.containsKey("scanContent")) { 
      Log.e(TAG, "scancontent intent received"); 
      String msg = extras.getString("scanContent"); 
      Log.e(TAG, msg); 
      arrowS.setVisibility(View.VISIBLE);//app is refreshed, but nothing is changed 
         } 

    scanButton.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      Intent scan = new Intent(MainActivity.this, Scan.class); 
      startActivity(scan); 
     } } });}   

スキャンクラス:

public void onActivityResult(int requestCode, int resultCode, Intent intent) { 
    if (requestCode == 0) { 
     if (resultCode == RESULT_OK) { 
      //get the extras that are returned from the intent 
      String contents = intent.getStringExtra("SCAN_RESULT"); 
      Intent i = new Intent(Scan.this, MainActivity.class); 
      i.putExtra("scanContent", contents); 
      startActivity(i); 
     } 
    } 
} 

@Override 
public void onBackPressed() { 
    finish(); 
    Intent intent = new Intent(Scan.this, MainActivity.class); 
    startActivity(intent);}  

すべてがmainactivityで "arrowS.setVisibility(View.VISIBLE)" ラインを除いて動作します

  1. スキャンインテントは、mainActivityクラスから開始されます。
  2. MainActivityインテントはScanクラスのonActivityResult()メソッドから開始されます

Logcatではエラーメッセージは表示されませんが、Logcat出力/アプリケーションは更新され、何も変更されません。私の欠陥がどこにあるのか誰にでも見えますか?

+2

は、矢印を何ですか、uはそれを初期化したのですか? – W4R10CK

答えて

0

スキャンアクティビティを開始し、結果をMainActivityに戻したいと思いますか?私が正しければ。あなたは2つの間違いをしています。 1.ビュースキャンボタンと矢印を初期化しているかどうか確認します。 2.スキャンアクティビティから "scanContent" - > i.putExtra( "scanContent"、contents)を送信しています。 MainActivityでは、「メッセージ」キーにfalseが返されるデータがあるかどうかを確認しています。この行を削除する - > if(extras.containsKey( "message"));そして、あなたのコードが正常に動作します

(ところで代わりのstartActivity(あなたがMainActivityのonActivityResult()の結果startActivityForResult(スキャン)を使用して処理する必要があります)スキャン)

関連する問題