Also, if one will be doing a lot of repeated compares of the same String values, String.intern() can be used to get a pointer that can be compared to other pointers to interned Strings.
Some Strings (I'm thinking all String literals in a program) are defined to be already interned. So, eg, if ClassA.methodA calls ClassB.methodB and passes a value that originated as the literal "Some String!", one could (if they knew the value originated as a literal) safely compare to the literal "Some String!" in methodB using the "==" comparison. On Apr 21, 5:56 am, Shawn Holland <[email protected]> wrote: > Your code is checking to see if the two variables referencing the same > object. You need to use the equals method... > > bb = (xx.equals(Local1)); > > On Apr 20, 12:08 am, Perry168 <[email protected]> wrote: > > > Hi, > > Today, I wrote a program. The function is to get the installed > > packages name through the provider name. But I find a problem, when I > > compare two SAME strings. The Boolean result will be FALSE. > > I used the Eclipse to watch the value change. From expression, I saw > > the Local1 and xx are same. But the Boolean bb is false. Also I > > installed the apk to phone too. I found the result is "FALSE" too. > > I don’t know the problem come from and how to fix it. > > I hope who can teach me. > > Following is my main.XML and source. > > > < XML > > > > <?xml version="1.0" encoding="utf-8"?> > > <LinearLayout xmlns:android="http://schemas.android.com/apk/res/ > > android" > > android:orientation="vertical" > > android:layout_width="fill_parent" > > android:layout_height="fill_parent" > > > > > <TextView android:text="TextView" android:id="@+id/tV1" > > android:layout_width="wrap_content" > > android:layout_height="wrap_content"></TextView> > > <Button android:text="Button" android:id="@+id/bn1" > > android:layout_width="wrap_content" > > android:layout_height="wrap_content"></Button> > > </LinearLayout> > > > < JAVA SOURCE > > > import java.util.List; > > import android.app.Activity; > > import android.content.pm.PackageInfo; > > import android.content.pm.ProviderInfo; > > import android.os.Bundle; > > import android.view.View; > > import android.view.View.OnClickListener; > > import android.widget.Button; > > import android.widget.TextView; > > > public class FindPackage extends Activity implements OnClickListener > > { > > > TextView tV1; > > Button bn1; > > String xx = "com.android.alarmclock"; > > Boolean bb = false; > > > @Override > > public void onCreate(Bundle savedInstanceState) { > > super.onCreate(savedInstanceState); > > setContentView(R.layout.main); > > > tV1 = (TextView) findViewById (R.id.tV1); > > bn1 = (Button) findViewById (R.id.bn1); > > bn1.setOnClickListener (this); > > } > > > @Override > > public void onClick(View v) { > > > if (v == bn1){ > > List <PackageInfo> aa = null; > > ProviderInfo [] kk = null; > > String Local1 = ""; > > aa = this.getPackageManager().getInstalledPackages(8); // > > Get all > > Packages > > int i = aa.toArray().length-1; // Get Number of Packages > > > while (i>=0) > > { > > kk = aa.get(i).providers; // Withdraw the Provider > > if (kk == null){ > > i--; > > continue; > > } > > if (kk[0].name.contains("Alarm")) // Checking the Provider > > name > > which has Alarm word" > > { > > Local1 = kk[0].packageName; // put the > > package name into > > Local1 > > break; > > } > > i--; > > } > > > i = 0; > > > bb = (xx==Local1); > > > tV1.setText(bb+""); // Show the result > > > } > > > }} -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/android-developers?hl=en

