2013-08-15 2 views
0

У меня есть onclicklistener на линии:не OnClickListener функционировать, как и ожидалось

mAssistUpdateButton = (Button) findViewById(R.id.assist_instr_btn); 
     mAssistUpdateButton.setOnClickListener(this); 

, который предполагается назвать:

public void onClick(View v) { 
    if (v == mAssistUpdateButton) { 

, но это не похоже, чтобы достичь этой точки в коде. Я просмотрел его несколько раз и не могу понять, что я сделал неправильно.

Любой ввод очень ценится.

ИСТОЧНИК:

import java.io.IOException; 
import java.io.InputStream; 
import java.util.ArrayList; 
import javax.xml.parsers.ParserConfigurationException; 

import org.xml.sax.SAXException; 

import android.annotation.SuppressLint; 
import android.annotation.TargetApi; 
import android.app.Activity; 
import android.app.AlertDialog; 
import android.app.Notification; 
import android.app.NotificationManager; 
import android.app.PendingIntent; 
import android.content.ContentResolver; 
import android.content.ContentValues; 
import android.content.Context; 
import android.content.DialogInterface; 
import android.content.Intent; 
import android.database.Cursor; 
import android.database.SQLException; 
import android.net.Uri; 
import android.os.Build; 
import android.os.Build.VERSION_CODES; 
import android.os.Bundle; 
import android.provider.Settings; 
import android.telephony.TelephonyManager; 
import android.text.Html; 
import android.util.Log; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 
import android.widget.TextView; 

public class ConfigFinalActivity extends Activity implements OnClickListener { 
    private static final String TAG = "ConfigActivity"; 
    TelephonyManager tm; 
    AlertDialog mErrorAlert = null; 
    private Notification mNotification = null; 
    private Button mXButton = null; 
    private Button mAssistUpdateButton = null; 
    private Button mAssistInstrButton = null; 
    private Button mReadAgainButton = null; 
    private int mInstructionNumber = 0; 
    public static ArrayList<String> NameArr = new ArrayList<String>(); 
    public static ArrayList<String> ValueArr = new ArrayList<String>(); 
    public static ArrayList<String> nameArr = new ArrayList<String>(); 
    public static ArrayList<String> ApnArr = new ArrayList<String>(); 
    public static ArrayList<String> mmscArr = new ArrayList<String>(); 
    public static ArrayList<String> mmsportArr = new ArrayList<String>(); 
    public static ArrayList<String> mmsproxyArr = new ArrayList<String>(); 
    public static ArrayList<String> portArr = new ArrayList<String>(); 
    public static ArrayList<String> proxyArr = new ArrayList<String>(); 
    public static int count; 
    public static int TotalSteps = 8; 
    int i, g = 0, result = 0; 
    String Result = ""; 
    public static ContentValues Values = new ContentValues(); 
    XmlParserHandlerFinal handler; 

    public static final Uri APN_TABLE_URI = Uri 
      .parse("content://telephony/carriers"); 
    public static String Base_URL = "https://www.mysettings.com/"; 
    public static InputStream stream = null; 
    UpdateActivity update; 
    public static String status; 

    /** Called when the activity is first created. */ 
    @SuppressLint("NewApi") 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     int version = android.os.Build.VERSION.SDK_INT; 
     tm = (TelephonyManager) getSystemService(TELEPHONY_SERVICE); 
     update = new UpdateActivity(); 
     nameArr = update.getnameArr(); 
     ApnArr = update.getApnArr(); 
     mmscArr = update.getMMSCArr(); 
     mmsproxyArr = update.getMmscProxyArr(); 
     mmsportArr = update.getMmsPortArr(); 
     proxyArr = update.getMmscProxyArr(); 
     portArr = update.getMmsPortArr(); 
     count = update.getCount(); 
     if (ApnArr.isEmpty() || mmscArr.isEmpty() || mmsportArr.isEmpty() 
       || mmsproxyArr.isEmpty() || proxyArr.isEmpty() 
       || portArr.isEmpty()) { 
      tryagain(); 
     } else if (version < VERSION_CODES.ICE_CREAM_SANDWICH) { 

      // Update APN table 
      try { 
       result = updateTable(); 
      } catch (IOException e1) { 
       // TODO Auto-generated catch block 
       e1.printStackTrace(); 
      }// Settings updated with this atomic call 
      catch (SAXException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } catch (ParserConfigurationException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 

      if (result != -1) { 
       status = "success"; 

      } else { 
       status = "failure"; 
      } 

      if (status.equals("success")) { 
       completeUpdate(); 
      } else if (status.equals("failure")) { 
       tryagain(); 
       // showAlert(getString(R.string.unchanged_net10_dialog)); 
      } 

     } else {// ICS and later versions 

      // Reduce number of steps to 6 
      TotalSteps = 6; 
      setContentView(R.layout.assist_instructions); 
    //  String assistUpdate = getString(R.string.instructions_1); 
    //  CharSequence styledText = Html.fromHtml(assistUpdate); 
      TextView assistText = (TextView) findViewById(R.id.apn_app_text_cta2); 
    //  assistText.setText(styledText); 
      mAssistUpdateButton = (Button) findViewById(R.id.assist_instr_btn); 
      mAssistUpdateButton.setOnClickListener(this); 

     } 
    } 

    public void onClick(View v) { 
     if (v == mAssistUpdateButton) { 

      // Update button for ICS and up is selected 
      // Get the TextView in the Assist Update UI 

      TextView tv = (TextView) findViewById(R.id.apn_app_text_cta2); 
      String text = ""; 
      CharSequence styledText = text; 
      switch (mInstructionNumber) { 

      case 0: 

       // Retrieve the instruction string resource corresponding the 
       // 2nd set of instructions 
     //  text = String.format(getString(R.string.instructions_3), 
    //     TotalSteps); 
//  styledText = Html.fromHtml(text); 
       // Update the TextView with the correct set of instructions 
       //tv.setText(styledText); 
       // Increment instruction number so the correct instructions 
       // string resource can be retrieve the next time the update 
       // button is pressed 
       mInstructionNumber++; 
       break; 

      case 1: 
       // First set of instructions for step by step process to update 
       // the APN Settings to the corresponding layout 
       //setContentView(R.layout.screen5); 
////    String one_text = String.format(getString(R.string.one), 
////      TotalSteps); 
////    CharSequence styledText_one = Html.fromHtml(one_text); 
//    TextView one = (TextView) findViewById(R.id.text_one); 
//    one.setTextSize(18); 
//    one.setText(styledText_one); 
//    String two_text = String.format(getString(R.string.two), 
//      TotalSteps); 
//    CharSequence styledText_two = Html.fromHtml(two_text); 
//    TextView two = (TextView) findViewById(R.id.text_two); 
//    two.setTextSize(18); 
//    two.setText(styledText_two); 
//    String three_text = String.format(getString(R.string.three), 
//      TotalSteps); 
//    CharSequence styledText_three = Html.fromHtml(three_text); 
//    TextView three = (TextView) findViewById(R.id.text_three); 
     //  three.setTextSize(18); 
      // three.setText(styledText_three); 
       mAssistUpdateButton = (Button) findViewById(R.id.assist_instr_btn); 
       mAssistUpdateButton.setOnClickListener(this); 
       mInstructionNumber++; 
       break; 

      case 2: 
       // second set of instructions for step by step process to update 
       // the APN Settings to the corresponding layout 
      // setContentView(R.layout.screen6); 
      // String four_text = String.format(getString(R.string.four), 
     //    TotalSteps); 
     //  styledText = Html.fromHtml(four_text); 
     //  TextView four = (TextView) findViewById(R.id.text_four); 
     //  four.setTextSize(18); 
     //  four.setText(styledText); 
     //  String five_text = String.format(getString(R.string.five), 
      //   TotalSteps); 
      // styledText = Html.fromHtml(five_text); 
      // TextView five = (TextView) findViewById(R.id.text_five); 
      // five.setTextSize(18); 
      // five.setText(styledText); 
     //  String six_text = String.format(getString(R.string.six), 
//      TotalSteps); 
//    styledText = Html.fromHtml(six_text); 
//    TextView six = (TextView) findViewById(R.id.text_six); 
//    six.setTextSize(18); 
//    six.setText(styledText); 
//   // String seven_text = String.format(getString(R.string.seven), 
       //  TotalSteps); 
      // styledText = Html.fromHtml(seven_text); 
      // TextView seven = (TextView) findViewById(R.id.text_seven); 
     //  seven.setTextSize(18); 
     //  seven.setText(styledText); 
      // String eight_text = String.format(getString(R.string.eight), 
       //  TotalSteps); 
      // styledText = Html.fromHtml(eight_text); 
      // TextView eight = (TextView) findViewById(R.id.text_eight); 
     //  eight.setTextSize(18); 
     //  eight.setText(styledText); 

       // just for testing 
       Result = "success"; 
       mAssistUpdateButton = (Button) findViewById(R.id.assist_instr_btn); 
       if (Result.equalsIgnoreCase("success")) { 
        mAssistUpdateButton.setOnClickListener(this); 
       } else if (Result.equalsIgnoreCase("failure")) { 
        // // Displaying final layout after failure of Post-ICS 
        // settings 
        // read the result in the response ..if success go ahead 
        // else load the tryagain screen 

     //   setContentView(R.layout.tryagain); 
     //   setContentView(R.layout.tryagain); 
        String tryAgainText = ""; 
        CharSequence styledTryAgainText; 

//     tryAgainText = String.format(
//       getString(R.string.tryagain_text1), TotalSteps); 
//     styledTryAgainText = Html.fromHtml(tryAgainText); 
//     TextView tryAgain1 = (TextView) findViewById(R.id.tryagain_text1); 
//     tryAgain1.setText(styledTryAgainText); 

//     tryAgainText = String.format(
//       getString(R.string.tryagain_text2), TotalSteps); 
//     styledTryAgainText = Html.fromHtml(tryAgainText); 
//     TextView tryAgain2 = (TextView) findViewById(R.id.tryagain_text2); 
//     tryAgain2.setText(styledTryAgainText); 
// 
//     tryAgainText = String.format(
//       getString(R.string.tryagain_text3), TotalSteps); 
//     styledTryAgainText = Html.fromHtml(tryAgainText); 
//     TextView tryAgain3 = (TextView) findViewById(R.id.tryagain_text3); 
//     tryAgain3.setText(styledTryAgainText); 

       } 

       mInstructionNumber++; 
       break; 
      case 3: 
       // final set of instructions 

      // setContentView(R.layout.assist_instructions_update); 
      // String last_instr_text = String.format(
     //    getString(R.string.instructions_5), TotalSteps); 
      // styledText = Html.fromHtml(last_instr_text); 
      // TextView last_text = (TextView) findViewById(R.id.apn_app_text_cta3); 
      // last_text.setText(styledText); 

//  //  String last_instr_text1 = String.format(
//      getString(R.string.thatsit), TotalSteps); 
//    styledText = Html.fromHtml(last_instr_text1); 
//    TextView last_text1 = (TextView) findViewById(R.id.thatsIt); 
//    last_text1.setText(styledText); 

       String mreadAgaintext = String 
         .format(getString(R.string.read_again_text)); 
       styledText = Html.fromHtml(mreadAgaintext); 

       mAssistInstrButton = (Button) findViewById(R.id.assist_instr_btn); 
      //ReadAgainButton = (Button) findViewById(R.id.read_again_btn); 

      //ReadAgainButton.setText(styledText); 
       mAssistInstrButton.setOnClickListener(this); 
     //mReadAgainButton.setOnClickListener(this); 
      } 
     } else if (v == mAssistInstrButton) { 
      // "LET'S DO THIS" Button in final instructions screen for ICS and 
      // up is selected 
      Values = getValues(); 
      startActivity(new Intent(Settings.ACTION_APN_SETTINGS)); 
      try { 
       showNotification(); 
      } catch (SAXException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } catch (ParserConfigurationException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 
      finish(); 
+0

Используйте отладчик. Мы не собираемся читать 1000 строк кода для вас. –

+1

Вы пытались заменить v == mAssistsUpdateButton на v.getId() == R.id.assist_instr_btn? – danijoo

+0

И какой импорт вы использовали для onclicklistener, вид? – Nick

ответ

1

Вы не можете сравнить взгляды такие объекты, как это. Как правило, вы сравниваете идентификаторы кнопок так:

public void onClick(View v) { 
    switch(v.getId()) { 
    case R.id.assist_instr_btn: 
    case R.id.button2: 
    } 
} 

Редактировать: Я также предлагаю вам ознакомиться с тестированием равенства объектов на Java. Использование == отлично подходит для примитивов, но обычно не для объектов.

+0

Спасибо, сэр! Я действительно ценю это. – DataSettingsProjectTeam

0

Вы использовали правильный импорт? Он должен быть

import android.view.View.OnclickListener 
+0

Да - я обновил свой источник выше, чтобы показать его – DataSettingsProjectTeam

0

как Тревор-е сказал он предпочел сравнить иду

public void onClick(View v) {  
    switch(v.getId()) { 
     case R.id.btn_1: 
     ...  
     break; 
    case R.id.btn_2: 
     ... 
     break; 
    } 
} 

, если вы хотите, чтобы сравнить объекты (виды в вашем случае, вы должны использовать «.equals». Ваш метод будет выглядеть следующим образом:

public void onClick(View v) {  
    if(v.equals(mAssistsUpdateButton)) { 
     //your code 
    }else if (v.equals(mButton2)) { 
     //your code 
    } 
} 

выше является правильным, но я думаю, что сравнение иды быстрее

H ope this help Cheers