2017-01-16 3 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); 
     } } });}   

класс 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);}  

Все работает на "arrowS.setVisibility (View.VISIBLE)" линии в mainactivity кроме

  1. Цель сканирования запускается из класса mainActivity
  2. MainActivity намерения начинается с метода onActivityResult() в классе Scan

Я не получаю сообщение об ошибке в LogCat, но мой Logcat выход/App обновляется, и ничего не изменилось. Кто-нибудь видит, где моя вина?

+2

Что Стрелы и сделал и инициализируются его? – W4R10CK

ответ

0

Я думаю, вы хотите начать сканирование и вернуть результат в MainActivity? Если я прав. Вы делаете две ошибки. 1. Проверьте, были ли инициализированы кнопка сканирования видов и стрелки. 2. Из операции сканирования вы отправляете только «scanContent» -> i.putExtra («scanContent», содержимое); И в MainActivity вы проверяете, есть ли какие-либо данные в «сообщении», который вернет false. Удалите эту строку -> if (extras.containsKey ("message")); и ваш код будет работать нормально

(Btw вместо startActivity (сканирование), вы должны использовать startActivityForResult (сканирования) и обрабатывать в результате onActivityResult() из MainActivity)

Смежные вопросы