Android Google Analytics (R.id) 重命名按钮

发布于 2024-12-04 03:03:12 字数 8615 浏览 1 评论 0原文

Button createEventButton = (Button)findViewById(R.id.NewEventButton);

Button createPageButton = (Button)findViewById(R.id.NewPageButton);

你好 我已经搜索遍了,但我不明白。我应该将“NewEventButton”更改为“button01”之类的内容吗? 问题是,如果我更改它,按钮就会停止工作,正常情况下,单击按钮时会打开手机浏览器并导航到网站。

同样的情况也发生在“NewPageButton”上,例如 Eclipse 也要求更改为“button01”。

如果我将它们保留原样,则会出现“无法成为解析器或不是字段”之类的错误,

提前致谢

更新 这是主要的 xml 文件,

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
android:background="@drawable/aevbackground"
android:id="@+id/main"
    >

    <Button android:text="Other" android:id="@+id/button9" android:layout_width="wrap_content" android:layout_height="33dp" 
android:onClick="myonclick1" android:layout_gravity="bottom|right"></Button>

   <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent"
   android:layout_gravity="center"
   android:orientation="vertical">
   <TextView  
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/hello1"
    />

<Button android:text="Home" android:id="@+id/button01" android:layout_width="230dp" android:layout_height="34dp" 
android:onClick="openBrowser1"></Button>
<Button android:text="Forum" android:id="@+id/button2" android:layout_width="210dp" android:layout_height="34dp" 
android:onClick="openBrowser2"></Button>
<Button android:text="FOC" android:id="@+id/button3" android:layout_width="190dp" android:layout_height="34dp" 
android:onClick="openBrowser3"></Button>
<Button android:text="ON TFC" android:id="@+id/button4" android:layout_width="170dp" android:layout_height="34dp" 
android:onClick="openBrowser4"></Button>
<Button android:text="At Facebook" android:id="@+id/button5" android:layout_width="150dp" android:layout_height="34dp" 
android:onClick="openBrowser5"></Button>
<Button android:text="At Twitter" android:id="@+id/button6" android:layout_width="130dp" android:layout_height="34dp" 
android:onClick="openBrowser6"></Button>
<Button android:text="At Google+" android:id="@+id/button7" android:layout_width="110dp" android:layout_height="34dp" 
android:onClick="openBrowser7"></Button>     
<Button android:text="@string/linkEmail" android:id="@+id/button8" android:layout_width="90dp" android:layout_height="34dp" 
android:onClick="linkEmailClicked"></Button>

</LinearLayout>

</FrameLayout>

这是带有 Google Analytics 的主要 java 文件

package com.av0001;


import com.google.android.apps.analytics.GoogleAnalyticsTracker;

import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;

public class Main extends Activity {
    /** Called when the activity is first created. */

    GoogleAnalyticsTracker tracker;


    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        tracker = GoogleAnalyticsTracker.getInstance();
     // Start the tracker in manual dispatch mode...
        tracker.startNewSession("UA-25624837-1", this);
        setContentView(R.layout.main);

        Button createEventButton = (Button)findViewById(R.id.button01);
        createEventButton.setOnClickListener(new OnClickListener() {
          @Override
          public void onClick(View v) {
            tracker.trackEvent(
                "Clicks",  // Category
                "Button",  // Action
                "clicked", // Label
                77);       // Value
          }
        });

        Button createPageButton = (Button)findViewById(R.id.button01);
        createPageButton.setOnClickListener(new OnClickListener() {
          @Override
          public void onClick(View v) {
            // Add a Custom Variable to this pageview, with name of "Medium" and value "MobileApp" and
            // scope of session-level.
            tracker.setCustomVar(1, "Navigation Type", "Button click", 2);
            // Track a page view. This is probably the best way to track which parts of your application
            // are being used.
            // E.g.
            // tracker.trackPageView("/help"); to track someone looking at the help screen.
            // tracker.trackPageView("/level2"); to track someone reaching level 2 in a game.
            // tracker.trackPageView("/uploadScreen"); to track someone using an upload screen.
            tracker.trackPageView("/mainspalsh");
            tracker.trackPageView("/main");
            tracker.trackPageView("/main2");
            tracker.trackPageView("/main3");

          }
        });

        Button quitButton = (Button)findViewById(R.id.button01);
        quitButton.setOnClickListener(new OnClickListener() {
          @Override
          public void onClick(View v) {
            finish();
          }
        });

        Button dispatchButton = (Button)findViewById(R.id.button01);
        dispatchButton.setOnClickListener(new OnClickListener() {
          @Override
          public void onClick(View v) {
            // Manually start a dispatch, not needed if the tracker was started with a dispatch
            // interval.
            tracker.dispatch();
          }
        });
      }
        public void openBrowser1(View view) {
            Intent i = new Intent("android.intent.action.VIEW", Uri.parse(""));
           startActivity(i);
        }
        public void openBrowser2(View view) {
            Intent i = new Intent("android.intent.action.VIEW", Uri.parse(""));
            startActivity(i);
        }
        public void openBrowser3(View view) {
            Intent i = new Intent("android.intent.action.VIEW", Uri.parse(""));
            startActivity(i);
        }
        public void openBrowser4(View view) {
            Intent i = new Intent("android.intent.action.VIEW", Uri.parse(""));
            startActivity(i); 
        }
        public void openBrowser5(View view) {
            Intent i = new Intent("android.intent.action.VIEW", Uri.parse(""));
            startActivity(i);    
        }
        public void openBrowser6(View view) {
            Intent i = new Intent("android.intent.action.VIEW", Uri.parse(""));
            startActivity(i);
        }
        public void openBrowser7(View view) {
            Intent i = new Intent("android.intent.action.VIEW", Uri.parse(""));
            startActivity(i);
        } 
        public void linkEmailClicked(View v) {
            Intent it = new Intent(Intent.ACTION_SEND);
            String[] tos = {getString(R.string.emailAddress)};
            it.putExtra(Intent.EXTRA_EMAIL, tos);
            it.putExtra(Intent.EXTRA_SUBJECT, getString(R.string.emailSubject));
            it.setType("text/plain");
            startActivity(it);
        }
        public void myonclick1(View view) {
            Intent mIntent = new Intent(this,Main2.class);
            startActivity(mIntent);
            Toast.makeText(
                    this,
                    "Thank you for using xxxxxxxxxxxxxxxxxxxxxx application, enjoy browsing :)", Toast.LENGTH_LONG).show();
            finish();  
        }
            @Override
            protected void onStart() {
                super.onStart();
                // The activity is about to become visible.
            }
            @Override
            protected void onResume() {
                super.onResume();
                // The activity has become visible (it is now "resumed").
            }
            @Override
            protected void onPause() {
                super.onPause();
                // Another activity is taking focus (this activity is about to be "paused").
            }
            @Override
            protected void onStop() {
                super.onStop();
                // The activity is no longer visible (it is now "stopped")
            }
            @Override
            protected void onDestroy() {
                super.onDestroy();
                // The activity is about to be destroyed.
             // Stop the tracker when it is no longer needed.
                tracker.stopSession();
            }
        }
Button createEventButton = (Button)findViewById(R.id.NewEventButton);

Button createPageButton = (Button)findViewById(R.id.NewPageButton);

Hallo
I have searched all over but I don't get it. Should I change the "NewEventButton" to something like "button01".
The problem is that if I change it, the button it stops working, normal the button when is clicked it opens the phone browser and navigate to a website.

The same happens with the "NewPageButton", eclipse asking to be changed also to "button01" for example.

If I leave them as it is, I have errors like "cannot be resolver or is not a field"

Thanks in advance

UPDATE
Thats the main xml file,

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
android:background="@drawable/aevbackground"
android:id="@+id/main"
    >

    <Button android:text="Other" android:id="@+id/button9" android:layout_width="wrap_content" android:layout_height="33dp" 
android:onClick="myonclick1" android:layout_gravity="bottom|right"></Button>

   <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent"
   android:layout_gravity="center"
   android:orientation="vertical">
   <TextView  
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/hello1"
    />

<Button android:text="Home" android:id="@+id/button01" android:layout_width="230dp" android:layout_height="34dp" 
android:onClick="openBrowser1"></Button>
<Button android:text="Forum" android:id="@+id/button2" android:layout_width="210dp" android:layout_height="34dp" 
android:onClick="openBrowser2"></Button>
<Button android:text="FOC" android:id="@+id/button3" android:layout_width="190dp" android:layout_height="34dp" 
android:onClick="openBrowser3"></Button>
<Button android:text="ON TFC" android:id="@+id/button4" android:layout_width="170dp" android:layout_height="34dp" 
android:onClick="openBrowser4"></Button>
<Button android:text="At Facebook" android:id="@+id/button5" android:layout_width="150dp" android:layout_height="34dp" 
android:onClick="openBrowser5"></Button>
<Button android:text="At Twitter" android:id="@+id/button6" android:layout_width="130dp" android:layout_height="34dp" 
android:onClick="openBrowser6"></Button>
<Button android:text="At Google+" android:id="@+id/button7" android:layout_width="110dp" android:layout_height="34dp" 
android:onClick="openBrowser7"></Button>     
<Button android:text="@string/linkEmail" android:id="@+id/button8" android:layout_width="90dp" android:layout_height="34dp" 
android:onClick="linkEmailClicked"></Button>

</LinearLayout>

</FrameLayout>

Thats the main java file with Google analytics

package com.av0001;


import com.google.android.apps.analytics.GoogleAnalyticsTracker;

import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;

public class Main extends Activity {
    /** Called when the activity is first created. */

    GoogleAnalyticsTracker tracker;


    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        tracker = GoogleAnalyticsTracker.getInstance();
     // Start the tracker in manual dispatch mode...
        tracker.startNewSession("UA-25624837-1", this);
        setContentView(R.layout.main);

        Button createEventButton = (Button)findViewById(R.id.button01);
        createEventButton.setOnClickListener(new OnClickListener() {
          @Override
          public void onClick(View v) {
            tracker.trackEvent(
                "Clicks",  // Category
                "Button",  // Action
                "clicked", // Label
                77);       // Value
          }
        });

        Button createPageButton = (Button)findViewById(R.id.button01);
        createPageButton.setOnClickListener(new OnClickListener() {
          @Override
          public void onClick(View v) {
            // Add a Custom Variable to this pageview, with name of "Medium" and value "MobileApp" and
            // scope of session-level.
            tracker.setCustomVar(1, "Navigation Type", "Button click", 2);
            // Track a page view. This is probably the best way to track which parts of your application
            // are being used.
            // E.g.
            // tracker.trackPageView("/help"); to track someone looking at the help screen.
            // tracker.trackPageView("/level2"); to track someone reaching level 2 in a game.
            // tracker.trackPageView("/uploadScreen"); to track someone using an upload screen.
            tracker.trackPageView("/mainspalsh");
            tracker.trackPageView("/main");
            tracker.trackPageView("/main2");
            tracker.trackPageView("/main3");

          }
        });

        Button quitButton = (Button)findViewById(R.id.button01);
        quitButton.setOnClickListener(new OnClickListener() {
          @Override
          public void onClick(View v) {
            finish();
          }
        });

        Button dispatchButton = (Button)findViewById(R.id.button01);
        dispatchButton.setOnClickListener(new OnClickListener() {
          @Override
          public void onClick(View v) {
            // Manually start a dispatch, not needed if the tracker was started with a dispatch
            // interval.
            tracker.dispatch();
          }
        });
      }
        public void openBrowser1(View view) {
            Intent i = new Intent("android.intent.action.VIEW", Uri.parse(""));
           startActivity(i);
        }
        public void openBrowser2(View view) {
            Intent i = new Intent("android.intent.action.VIEW", Uri.parse(""));
            startActivity(i);
        }
        public void openBrowser3(View view) {
            Intent i = new Intent("android.intent.action.VIEW", Uri.parse(""));
            startActivity(i);
        }
        public void openBrowser4(View view) {
            Intent i = new Intent("android.intent.action.VIEW", Uri.parse(""));
            startActivity(i); 
        }
        public void openBrowser5(View view) {
            Intent i = new Intent("android.intent.action.VIEW", Uri.parse(""));
            startActivity(i);    
        }
        public void openBrowser6(View view) {
            Intent i = new Intent("android.intent.action.VIEW", Uri.parse(""));
            startActivity(i);
        }
        public void openBrowser7(View view) {
            Intent i = new Intent("android.intent.action.VIEW", Uri.parse(""));
            startActivity(i);
        } 
        public void linkEmailClicked(View v) {
            Intent it = new Intent(Intent.ACTION_SEND);
            String[] tos = {getString(R.string.emailAddress)};
            it.putExtra(Intent.EXTRA_EMAIL, tos);
            it.putExtra(Intent.EXTRA_SUBJECT, getString(R.string.emailSubject));
            it.setType("text/plain");
            startActivity(it);
        }
        public void myonclick1(View view) {
            Intent mIntent = new Intent(this,Main2.class);
            startActivity(mIntent);
            Toast.makeText(
                    this,
                    "Thank you for using xxxxxxxxxxxxxxxxxxxxxx application, enjoy browsing :)", Toast.LENGTH_LONG).show();
            finish();  
        }
            @Override
            protected void onStart() {
                super.onStart();
                // The activity is about to become visible.
            }
            @Override
            protected void onResume() {
                super.onResume();
                // The activity has become visible (it is now "resumed").
            }
            @Override
            protected void onPause() {
                super.onPause();
                // Another activity is taking focus (this activity is about to be "paused").
            }
            @Override
            protected void onStop() {
                super.onStop();
                // The activity is no longer visible (it is now "stopped")
            }
            @Override
            protected void onDestroy() {
                super.onDestroy();
                // The activity is about to be destroyed.
             // Stop the tracker when it is no longer needed.
                tracker.stopSession();
            }
        }

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

掩耳倾听 2024-12-11 03:03:12

在我看来,您正在重命名它,但没有更改 XML 布局 id 名称,因此 R.java 没有新名称。如果您也更改了 XML,那么您就不会重新编译该项目。确保在 Eclipse 环境中选择自动编译。转到项目 ->自动构建并确保其旁边有复选标记。

----替代建议----
您使用什么版本的 eclipse 和 ADB...您可能必须升级到最新版本并重新安装 ADB...我遇到了类似的编译错误,只有升级和重新安装才有效。你的代码对我来说编译得很好。不确定您将如何实现其中一些方法,并且您确实有 4 个侦听器侦听同一个按钮 R.id.button01。这是在我的 Eclipse 中运行的代码:

在此处输入图像描述

Sounds to me that you are renaming it but not changing the XML layout id name and hence the R.java does not have the new name. If you are changing the XML too, then you are not re-compiling the project. Make sure to have the auto-compile selected in your Eclipse environment. Go to Project -> Build Automatically and make sure it has a check mark next to it.

----Alternate Suggestions ----
What version of eclipse are you using and ADB...you might have to upgrade to the latest and reinstal ADB.... I had something similar with compilation errors and only upgrading and re-install worked. your code compiles fine for me. Not sure how your going to reach some of these methods and you do have 4 listeners listening to the same button R.id.button01. Here is your code running in my eclipse:

enter image description here

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文