大家好我是android的新手,我正在尝试使用Map开发一个应用程序,当我点击Infowindow(当用户点击Marker时出现的气泡)时,会出现一个弹出窗口(在屏幕截图中) )并由Google WindowFeature调用。
问题在于,如果我试图出现并消失另一个按钮,如电话按钮(icotelephone)一切正常,但如果我尝试制作一些不与布局上的元素相关的东西,请开始新的通话或应用程序崩溃之类的东西。
为什么?
在WindowFeature的屏幕截图和声明OnClickListener的片段代码下面。非常感谢你!
此处我的代码段:
public Hide_Unhide (View v){
barrainfo = (LinearLayout)v.findViewById(R.id.links_bar); //tutta la barra
icotelefono = (ImageButton) v.findViewById(R.id.telephone_icon); //pulsante chiamata
icoemail = (ImageButton) v.findViewById(R.id.email_icon); //pulsante nuova mail
icofacebook = (ImageButton) v.findViewById(R.id.facebook_icon); //pulsante facebook
icotwitter = (ImageButton) v.findViewById(R.id.twitter_icon); //pulsante twitter
icosito = (ImageButton) v.findViewById(R.id.sito_icon); //pulsante sito web
/* * * * * Try share button * * * */
/*******************************/
ImageButton trysharebutton = (ImageButton) v.findViewById(R.id.share_icon);
trysharebutton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(getApplicationContext(), "Bottone condividi", Toast.LENGTH_LONG);
}
});
/*******************************/
};
public void mostra_nascondi(int numero_di_informazioni, int info_number){ //numero di informazioni = 0 (no info) - 1 (si info)
/*if (numero_di_informazioni <= 0){ //info_number = identifica il social o il telefono o l'email
barrainfo.setVisibility(View.GONE); //se per l'info_number = 3 corrisponde un numero informazioni = 0
}else //il locale non ha l'email
{ //
barrainfo.setVisibility(View.VISIBLE); // - - - Schema Informazioni - - - - - - - - - -
// - - - - - - - - + - - - - - - - - - - - - - - -
}*/ // | 2: telefono | num_di_informazioni [0-1] |
// | 3: email | num_di_informazioni [0-1] |
// | 5: facebook | num_di_informazioni [0-1] |
// | 6: twitter | num_di_informazioni [0-1] |
// | 7: sito | num_di_informazioni [0-1] |
// - - - - - - - - - - - - - - - - - - - - - - -
switch (info_number){
case 0:
if (numero_di_informazioni <= 0){
barrainfo.setVisibility(View.GONE);
}else
{
barrainfo.setVisibility(View.VISIBLE);
}
break;
case 2: //telefono
if(numero_di_informazioni <= 0)
{
icotelefono.setVisibility(View.GONE);
}else
{
icotelefono.setVisibility(View.VISIBLE);
//forse qui ci andrà l'onclick listener del pulsante
icotelefono.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
MainActivity prova = new MainActivity();
prova.prova2();
}
});
}
break;
case 3: //email
if(numero_di_informazioni <= 0)
{
icoemail.setVisibility(View.GONE);
}else
{
icoemail.setVisibility(View.VISIBLE);
}
break;
case 5: //facebook
if(numero_di_informazioni <= 0)
{
icofacebook.setVisibility(View.GONE);
}else
{
icofacebook.setVisibility(View.VISIBLE);
}
break;
case 6: //twitter
if(numero_di_informazioni <= 0)
{
icotwitter.setVisibility(View.GONE);
}else
{
icotwitter.setVisibility(View.VISIBLE);
}
break;
case 7: //sito
if(numero_di_informazioni <= 0)
{
icosito.setVisibility(View.GONE);
}else
{
icosito.setVisibility(View.VISIBLE);
}
break;
}
}
}
这样就没有问题:
/* * * * * Try share button * * * */
/*******************************/
ImageButton trysharebutton = (ImageButton) v.findViewById(R.id.share_icon);
trysharebutton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
icotelefono.setVisibility(View.GONE);
}
});
/*******************************/
但是,如果我尝试打电话或敬酒,应用程序崩溃:/
/* * * * * Try share button * * * */
/*******************************/
ImageButton trysharebutton = (ImageButton) v.findViewById(R.id.share_icon);
trysharebutton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(getApplicationContext(), "Bottone condividi", Toast.LENGTH_LONG);
}
});
/*******************************/
Logcat:
10-10 10:55:22.601: W/dalvikvm(18101): threadid=1: thread exiting with uncaught exception (group=0x41b91c08)
10-10 10:55:22.606: E/AndroidRuntime(18101): FATAL EXCEPTION: main
10-10 10:55:22.606: E/AndroidRuntime(18101): Process: com.example.findmyclients, PID: 18101
10-10 10:55:22.606: E/AndroidRuntime(18101): java.lang.NullPointerException
10-10 10:55:22.606: E/AndroidRuntime(18101): at android.content.ContextWrapper.getApplicationContext(ContextWrapper.java:114)
10-10 10:55:22.606: E/AndroidRuntime(18101): at com.example.findmyclients.Hide_Unhide$1.onClick(Hide_Unhide.java:53)
10-10 10:55:22.606: E/AndroidRuntime(18101): at android.view.View.performClick(View.java:4654)
10-10 10:55:22.606: E/AndroidRuntime(18101): at android.view.View$PerformClick.run(View.java:19438)
10-10 10:55:22.606: E/AndroidRuntime(18101): at android.os.Handler.handleCallback(Handler.java:733)
10-10 10:55:22.606: E/AndroidRuntime(18101): at android.os.Handler.dispatchMessage(Handler.java:95)
10-10 10:55:22.606: E/AndroidRuntime(18101): at android.os.Looper.loop(Looper.java:146)
10-10 10:55:22.606: E/AndroidRuntime(18101): at android.app.ActivityThread.main(ActivityThread.java:5602)
10-10 10:55:22.606: E/AndroidRuntime(18101): at java.lang.reflect.Method.invokeNative(Native Method)
10-10 10:55:22.606: E/AndroidRuntime(18101): at java.lang.reflect.Method.invoke(Method.java:515)
10-10 10:55:22.606: E/AndroidRuntime(18101): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1283)
10-10 10:55:22.606: E/AndroidRuntime(18101): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1099)
10-10 10:55:22.606: E/AndroidRuntime(18101): at dalvik.system.NativeStart.main(Native Method)