2013-10-29 3 views
0

두 개의 edittext 블록 + 두 개의 버튼 (savedpreferences를 사용하는 사용자)이 있는데, 둘 다 onclicklistener를 사용하는 방법을 알아낼 수 없습니다. 나는 이제 onclicklistener에서 다른 것을 필요로하는 두 개의 버튼을 가지고있다. 이 코드가 작동하도록 변경하려면 어떻게해야합니까?2 개의 OnClick Listener, 2 개의 버튼. (savedpreferences)

저는 정말 Android에 새로운입니다.

Maincode

public class MainActivity extends Activity implements OnClickListener{ 

    EditText editText; 
    EditText editText1; 
    Button button; 
    Button button1; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) {   
    // TODO Auto-generated method stub 

    super.onCreate(savedInstanceState); 
    this.registerReceiver(this.mConnReceiver, 
      new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION)); 
    setContentView(R.layout.activity_main); 

    editText = (EditText) findViewById(R.id.editText1); 
    button = (Button) findViewById(R.id.button1); 
    button.setOnClickListener(this); 

    editText1 = (EditText) findViewById(R.id.editText2); 
    button1 = (Button) findViewById(R.id.button2); 
    button1.setOnClickListener(this); 

    loadSavedPreferences(); 
    loadSavedPreferences1(); 
} 

     private void loadSavedPreferences() { 
    SharedPreferences sharedPreferences = PreferenceManager 
      .getDefaultSharedPreferences(this); 
    String name = sharedPreferences.getString("storedName", "YourName"); 
    editText.setText(name); 
} 

private void loadSavedPreferences1() { 
    SharedPreferences sharedPreferences = PreferenceManager 
      .getDefaultSharedPreferences(this); 
    String onderwerp = sharedPreferences.getString("storedOnderwerp", "YourOnderwerp"); 
    editText1.setText(onderwerp); 
} 

private void savePreferences(String key, String value) { 
    SharedPreferences sharedPreferences = PreferenceManager 
      .getDefaultSharedPreferences(this); 
    Editor editor = sharedPreferences.edit(); 
    editor.putString(key, value); 
    editor.commit(); 
} 

private void savePreferences1(String key, String value) { 
    SharedPreferences sharedPreferences = PreferenceManager 
      .getDefaultSharedPreferences(this); 
    Editor editor1 = sharedPreferences.edit(); 
    editor1.putString(key, value); 
    editor1.commit(); 
} 

@Override 
public void onClick(View v) { 
    // TODO Auto-generated method stub 

    savePreferences("storedName", editText.getText().toString()); 

    Toast.makeText(getApplicationContext(), 
      "Meldingtekst is aangepast.", Toast.LENGTH_LONG).show(); 
} 

@Override 
public void onClick(View v) { 
    // TODO Auto-generated method stub 

    savePreferences1("storedOnderwerp", editText1.getText().toString()); 

    Toast.makeText(getApplicationContext(), 
      "Meldingonderwerp is aangepast.", Toast.LENGTH_LONG).show(); 
} 
+0

먼저 인터페이스의 개념을 이해해야합니다. 당신이 그것을 이해한다면, 당신은 결코 그런 것들을 혼동하지 않습니다. –

답변

1

다음 코드를보십시오 :

@Override 
public void onClick(View v) { 
    // TODO Auto-generated method stub 

    if(v==button) 
    { 
     savePreferences("storedName", editText.getText().toString());  
     Toast.makeText(getApplicationContext(), "Meldingtekst is aangepast.", Toast.LENGTH_LONG).show(); 
    } 

    else if(v==button1)  
    {  
     savePreferences1("storedOnderwerp", editText1.getText().toString());  
     Toast.makeText(getApplicationContext(), "Meldingonderwerp is aangepast.", Toast.LENGTH_LONG).show(); 
    } 
} 
+0

일했습니다! 나는 그것이 허용 될 때 올바른 답 기호를 줄 것이다. – user2883477

+0

예! 도와 줄 수있어서 기뻐. –

0

이 시도 :

button.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 
       // Perform action on click 

       Intent activityChangeIntent = new Intent(MyActivity.this, NextActivity.class); 

       startActivity(activityChangeIntent); 


      } 
     }); 
0

은 한 번만의 onclick() 메소드를 오버라이드 (override) 할 필요가있다. 다음과 같이 쓰기 :

@Override 

공공 무효 온 클릭 (보기 V) {

if(v == button) 
{ 
savePreferences("storedName", editText.getText().toString()); 

Toast.makeText(getApplicationContext(), 
     "Meldingtekst is aangepast.", Toast.LENGTH_LONG).show(); 
    } 
    else if(v == button1) 

    { 

    savePreferences1("storedOnderwerp", editText1.getText().toString()); 

Toast.makeText(getApplicationContext(), 
     "Meldingonderwerp is aangepast.", Toast.LENGTH_LONG).show(); 
} 
} 
0

변경과 같은 코드. 당신의 버튼 처리의 최적화 방법은 두 당신의 온 클릭 (보기 V) 내에서이 조건을 넣어 가지고,

@Override 
public void onClick(View v) { 
    // TODO Auto-generated method stub 
switch(v.getId()) 
{ 
case R.id.button1: 
    savePreferences("storedName", editText.getText().toString()); 

    Toast.makeText(getApplicationContext(), 
      "Meldingtekst is aangepast.", Toast.LENGTH_LONG).show(); 
break; 
case R.id.button2: 
    savePreferences1("storedOnderwerp", editText1.getText().toString()); 

    Toast.makeText(getApplicationContext(), 
      "Meldingonderwerp is aangepast.", Toast.LENGTH_LONG).show(); 
break; 
} 
0

당신은 두 개의 버튼이 두 온 클릭 (보기 V)를 작성하지 않아도 클릭

@Override 
public void onClick(View v) { 
// TODO Auto-generated method stub 
switch(v.getId()){ 
case R.id.button: 
// code for button 1 
break; 
case R.id.button1: 
// code for button 2 
break; 
} 
} 
0

Java에 따라 Android에서 clickLister에 대한 innerclass를 항상 만드는 것이 더 좋습니다.

button1.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 
     savePreferences("storedName", editText.getText().toString()); 

    Toast.makeText(getApplicationContext(), 
      "Meldingtekst is aangepast.", Toast.LENGTH_LONG).show(); 
     } 
     }); 

    button2.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 
     savePreferences("storedName", editText.getText().toString()); 

    Toast.makeText(getApplicationContext(), 
      "Meldingtekst is aangepast.", Toast.LENGTH_LONG).show(); 
     } 
     }); 
0

당신이해야 할 일을 이해하려면 인터페이스의 개념을 이해해야한다고 생각합니다. 이를 확인할 수있는 링크는 onClickListner를 사용하는 방법을 이해하는 데 도움이됩니다.

+0

유용한 링크! 고마워. – user2883477

+0

:) yup 기초가 매우 유용합니다. –

관련 문제