2017-01-13 19 views
-2

私は、1つのpublic static Stringメソッドを持つパブリッククラスを持っています。私はgetString()する必要があり、その前に私はString ressourceを抽出し、コンテキストを渡す必要があり、私はそれを渡す方法を知らない。公開静的Stringメソッドを使用してコンテキストをパブリッククラスに渡す方法

public class StringUtil { 

    public static String sumUp(int nr1, int nr2) { 
     int sum = nr1 + nr2; 
     String result; 

     //all what is in "" 
     result =.getString(R.string.result) + sum; 
     return result; 

    } 
} 

ButtonListenerクラスpublic static Stringメソッドを使用しています。

別のクラスはpublic static String方法

のコード例では、使用しています。コード:

public class ButtonListener extends MainActivity implements View.OnClickListener { 
MainActivity activity; 
EditText et1; 
EditText et2; 

public ButtonListener(MainActivity activity) { 
    this.activity = activity; 
} 

@Override 
public void onClick(View view) { 

    switch (view.getId()){ 
     case R.id.sum: 
      et1 = (EditText) activity.findViewById(R.id.nr1_edit_text); 
      et2 = (EditText)activity.findViewById(R.id.nr2_edit_text); 

      String nr1In = et1.getText().toString(); 
      String nr2In = et1.getText().toString(); 

      int nr1 = Integer.parseInt(nr1In); 
      int nr2 = Integer.parseInt(nr2In); 

      Intent intent = new Intent(activity, IntentActivity.class); 
      intent.putExtra("result", StringUtil.sumUp(nr1, nr2)); 
      activity.startActivity(intent); 
      break; 
    } 

} 
} 

IntentActivityクラス'getIntent'コード:

public class IntentActivity extends MainActivity{ 

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


     TextView textView = (TextView)findViewById(R.id.result); 

     Intent intent = getIntent(); 

     String fResult = intent.getStringExtra("result"); 
     textView.setText(fResult); 


    } 
} 

そしてMainActivityコード:

public class MainActivity extends AppCompatActivity { 

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



     ButtonListener bl = new ButtonListener(this); 

     Button sumUp= (Button)findViewById(R.id.sum_button); 
     sumUp.setOnClickListener(bl); 

    } 
} 
+1

public static String sumUp(int nr1、int nr2、コンテキストコンテキスト) – Pavya

+0

あなたは簡単に言うことができますか? – W4R10CK

答えて

1
public class StringUtil { 

    public static String sumUp(int nr1, int nr2, Context context){ 
     int sum = nr1 +nr2; 
     String result; 

     result = context.getString(R.string.result) + sum; 
     return result; 

     } 
    } 

など、それを使用します。

StringUtil.sumUp(1,2, this); // from Activity 
StringUtil.sumUp(1,2, getContext()); // from Fragment 
0

StringUtilクラスをこれに置き換えます。

public class StringUtil { 

    public static String sumUp(Context mContext, int nr1, int nr2){ 
     int sum = nr1 +nr2; 
     String result; 

     //all what is in "" 
     result = mContext.getString(R.string.result) + sum; 
     return result; 

    } 
} 

編集

そして、あなたのButtonListenerの活動からこのメソッドを呼び出します。 1.toは、あなたのメソッドのパラメータとして渡し:

intent.putExtra("result", StringUtil.sumUp(ButtonListener.this, nr1, nr2)); 
+0

私はすべてのコードを表示し、実際に私が必要とするexplaneより良いbeginigで申し訳ありません。私はちょうどすべての活動でポストを更新しましたが、これは難しいです(少なくとも私にとっては) – lounchy

+0

@lounchy私は私の答えを更新しました。見てください。 ButtonListenerアクティビティからコンテキストを渡すだけで済みます。 –

+0

アプリケーションがクラッシュします。 ' と' intent.putExtra( "結果"、StringUtil.sumUp(ButtonListener.this、NR1、NR2)); ' ため'結果= mContext.getString(R.string.result)+和のエラーメッセージ: 'java.lang.NullPointerException:ヌルオブジェクト参照で仮想メソッド 'android.content.res.Resources android.content.Context.getResources()'を呼び出そうとしました。 – lounchy

0

あなたは2つの方法があります

  public static String sumUp(int nr1, int nr2 ,Context context){ 
      int sum = nr1 +nr2; 
      String result; 
      //all what is in "" 
      result = .getString(R.string.result) + sum; 
      return result;    
      } 

2.toは、クラスのコンストラクタにコンテキストを追加して、あなたはあなたのメソッド内でそれを使用することができます:

public class StringUtil { 
    Context context; 

    public void StringUtil (Context context){ 
    this.context = context; 
    } 


    public static String sumUp(int nr1, int nr2){ 
    int sum = nr1 +nr2; 
    String result; 
    //all what is in "" 
    result = .getString(R.string.result) + sum; 
    return result; 

    } 
} 
関連する問題