2017-06-05 13 views
0

こんにちは、私はAndroid、javaの新機能です。別のクラスのメソッドの文字列を使用したいと思います。具体的には、クラスTestからクラスMainActivityへのStringを使用したいと思います。これは別のクラスのメソッドから文字列を呼び出す方法Android

public class Test extends Activity { 




private RadioGroup radioGroupQuestion1; 
private RadioButton radioButtonQuestion1; 


@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    radioGroupQuestion1 = (RadioGroup) findViewById(R.id.radioGroupQ1); 


    Button NextButton = (Button) findViewById(R.id.Q1NextButton); 
    NextButton.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View view) { 

      int selectedId = radioGroupQuestion1.getCheckedRadioButtonId(); 
      radioButtonQuestion1 = (RadioButton) findViewById(selectedId); 
      String AnswerQ1 = radioButtonQuestion1.getText().toString(); 
      String Question1 = getString(R.string.Q1); 
      System.out.println(Question1); 

      System.out.println(AnswerQ1); 

      Intent myIntent = new Intent(view.getContext(), Question2.class); 
      startActivityForResult(myIntent, 0); 
     } 
    }); 
} 

私のテストクラスであり、これは

public class MainActivity extends Activity{ 

String myData = Test.s; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    System.out.println(myData); 

    } 
} 
+1

https://docs.oracle.com/javase/tutorial/java/nutsandbolts/variables.html –

答えて

0
Try with initializing string on the top of an onCreate method. 

public class Test extends Activity { 

public static String s = "hello world"; 

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    } 
} 
私MainActivityクラスです
私は

Test.AnswerQ1 

ようにそれを呼び出そうとしましたが、それはそれは記号 "AnswerQ1" を解決できないと言います

0

静的メンバーをインスタンスメソッド内で宣言しないでください。

静的メンバーをクラスメンバーではなくローカルメンバーとして宣言する必要があります。

例:

public class Test extends Activity { 
    public static String s = "hello world"; 

    public void onCreate(Bundle savedInstanceState){ 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
    } 
} 
0

あなたはS public staticを作ることができます。しかし、他の多くのソリューションがあります。あなたの必要性に応じて、あなたは私が内部の私の変数のpublic staticを作ることができないShared PreferenceBroadcast ListenerInterfaceなど

+0

を使用することができます方法 – AndroidKid

関連する問題