gpt4 book ai didi

java - OnClickListener 未按预期运行

转载 作者:行者123 更新时间:2023-12-01 14:14:20 25 4
gpt4 key购买 nike

我在线上有一个 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();

最佳答案

你不能像这样比较 View 对象。通常您会像这样比较按钮 ID:

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

编辑:我还建议您阅读 Java 中的测试对象相等性。使用 == 对于基元来说很好,但对于对象来说通常不行。

关于java - OnClickListener 未按预期运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18256378/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com