2017-01-16 4 views
0

내 mainActivity에서 인 텐트를받은 후 레이아웃을 변경하려고 할 때 문제가 발생했습니다. 나는 두 개의 클래스레이아웃을 변경하면 두 가지 활동 앱이 충돌합니다.

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

이 화살표를 무엇이며 유를 초기화 했습니까? – W4R10CK

답변

0

스캔 작업을 시작하고 결과를 MainActivity로 가져 오시겠습니까? 내가 옳다면. 당신은 두 가지 실수를 저지르고 있습니다. 1. 뷰 스캔 버튼과 화살표를 초기화했는지 확인하십시오. 2. 검색 활동에서 "scanContent"-> i.putExtra ("scanContent", 내용) 만 보내고 있습니다. MainActivity에서 false를 반환하는 "message"키에 데이터가 있는지 확인합니다. 이 줄을 제거하십시오 -> if (extras.containsKey ("message")); 당신의 코드는 잘 작동합니다

(Btw는 대신 startActivity를 (당신이 MainActivity의 onActivityResult를() 결과에 startActivityForResult (스캔)를 사용하고 처리해야) 스캔)

관련 문제