2017-01-13 3 views
-2

공용 메서드를 가진 public static String 메서드가 있습니다. 나는 getString()을 가지고 있고 그 전에 나는 String ressource를 추출해야하고 Context를 전달해야하고 그것을 전달하는 방법을 모른다.공용 static String 메서드를 사용하여 공용 클래스에 컨텍스트를 전달하는 방법

또 다른 클래스는 public static 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 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

공공 정적 문자열 sumUp (INT NR1, INT NR2, 컨텍스트 컨텍스트) – Pavya

+0

이 유 간단한 알려 주시기 바랍니다 수 있습니다, u는 무엇을 줄까? – 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

beginig에서 미안합니다. 모든 코드를 보여줘야하고 explane이 더 필요합니다. 방금 모든 활동으로 게시물을 업데이트했습니다. 이건 까다 롭습니다 (적어도 저에게는) – lounchy

+0

@lounchy 내 답변을 업데이트했습니다. 이것을 봐주세요. ButtonListener Activity에서 컨텍스트를 전달하면됩니다. –

+0

응용 프로그램이 충돌합니다. 때문에 결과 '= mContext.getString (R.string.result) + 합계; '및 ' intent.putExtra ("결과"StringUtil.sumUp (ButtonListener.this, NR1, NR2))' 오류 메시지 : 'java.lang.NullPointerException : null 객체 참조에 'android.content.res.Resources android.content.Context.getResources()'가상 메소드를 호출하려고 시도했습니다. – lounchy

0

당신은이 개 방법이

  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; 

    } 
}