解决方案 »

  1.   

            <TextView
                android:id="@+id/text1"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:layout_weight="1.0"
                android:gravity="center"
                android:text="@string/home"
                android:textColor="#000000"
                android:textSize="12.0dip"
                android:clickable="true"
                android:onClick="SendIndex()" />
        public void SendIndex(View v)
        {
         Toast.makeText(this, "再点击一次退出", Toast.LENGTH_LONG).show();
        }
      

  2.   

    我是初学者,以前做.net C#的,完全搞不明白哪里写的有问题,请各位指教
      

  3.   

    project --->clean一下,能不能把logCat截图截全了。
      

  4.   

    onclick方法中设置点击方法不加括号
      

  5.   


    public void SendIndex()
        {
            Toast.makeText(this, "再点击一次退出", Toast.LENGTH_LONG).show();
        }
      

  6.   

    NoSuchMethod....方法没找到,或者没有匹配上,SendIndex(View v)去掉“View v”试试吧
      

  7.   

    android:onClick="SendIndex()"
    这里不需要括号,只要引号里的值跟方法名一样就行
      

  8.   

    嗯嗯 ~~ 谢谢各位大侠了 ,确实是android:onClick="SendIndex()"这里的问题,去掉括号就可以了
      

  9.   

    还有个问题就是 
    我用t1.setOnClickListener(new View.OnClickListener()  会在打开app时就弹出app被迫关闭 
      

  10.   

    再写点击事件的话最好用监听吧
    先前看的事例用的就是监听,不过就是报错 ,所以我就试试这种方式上一层里说了  private void InitTextView() {
            t1 = (TextView) findViewById(R.id.text1);
            t2 = (TextView) findViewById(R.id.text2);
            t3 = (TextView) findViewById(R.id.text3);        t1.setOnClickListener(new MyOnClickListener(0));
            t2.setOnClickListener(new MyOnClickListener(1));
            t3.setOnClickListener(new MyOnClickListener(2));
        }
        /**
         * 头标点击监听
    */
        public class MyOnClickListener implements View.OnClickListener {
            private int index = 0;        public MyOnClickListener(int i) {
                index = i;
            }        @Override
            public void onClick(View v) {
               Toast.makeText(this, "再点击一次退出"+v.getId(), Toast.LENGTH_LONG).show();
            }
        };  
      

  11.   

    再写点击事件的话最好用监听吧
    先前看的事例用的就是监听,不过就是报错 ,所以我就试试这种方式上一层里说了  private void InitTextView() {
            t1 = (TextView) findViewById(R.id.text1);
            t2 = (TextView) findViewById(R.id.text2);
            t3 = (TextView) findViewById(R.id.text3);        t1.setOnClickListener(new MyOnClickListener(0));
            t2.setOnClickListener(new MyOnClickListener(1));
            t3.setOnClickListener(new MyOnClickListener(2));
        }
        /**
         * 头标点击监听
    */
        public class MyOnClickListener implements View.OnClickListener {
            private int index = 0;        public MyOnClickListener(int i) {
                index = i;
            }        @Override
            public void onClick(View v) {
               Toast.makeText(this, "再点击一次退出"+v.getId(), Toast.LENGTH_LONG).show();
            }
        };  
    MyOnClickListener类里面的onClick方法中的this有问题,用activity的类名.this
      

  12.   

    再写点击事件的话最好用监听吧
    先前看的事例用的就是监听,不过就是报错 ,所以我就试试这种方式上一层里说了  private void InitTextView() {
            t1 = (TextView) findViewById(R.id.text1);
            t2 = (TextView) findViewById(R.id.text2);
            t3 = (TextView) findViewById(R.id.text3);        t1.setOnClickListener(new MyOnClickListener(0));
            t2.setOnClickListener(new MyOnClickListener(1));
            t3.setOnClickListener(new MyOnClickListener(2));
        }
        /**
         * 头标点击监听
    */
        public class MyOnClickListener implements View.OnClickListener {
            private int index = 0;        public MyOnClickListener(int i) {
                index = i;
            }        @Override
            public void onClick(View v) {
               Toast.makeText(this, "再点击一次退出"+v.getId(), Toast.LENGTH_LONG).show();
            }
        };  
    MyOnClickListener类里面的onClick方法中的this有问题,用activity的类名.this
    你说的是Toast.makeText(this, "再点击一次退出"+v.getId(), Toast.LENGTH_LONG).show();
    这一句里面的吗?这个是我为了做测试后来加上去的,去掉这句也是报错的
      

  13.   

    再写点击事件的话最好用监听吧
    先前看的事例用的就是监听,不过就是报错 ,所以我就试试这种方式上一层里说了  private void InitTextView() {
            t1 = (TextView) findViewById(R.id.text1);
            t2 = (TextView) findViewById(R.id.text2);
            t3 = (TextView) findViewById(R.id.text3);        t1.setOnClickListener(new MyOnClickListener(0));
            t2.setOnClickListener(new MyOnClickListener(1));
            t3.setOnClickListener(new MyOnClickListener(2));
        }
        /**
         * 头标点击监听
    */
        public class MyOnClickListener implements View.OnClickListener {
            private int index = 0;        public MyOnClickListener(int i) {
                index = i;
            }        @Override
            public void onClick(View v) {
               Toast.makeText(this, "再点击一次退出"+v.getId(), Toast.LENGTH_LONG).show();
            }
        };  
    MyOnClickListener类里面的onClick方法中的this有问题,用activity的类名.this
    你说的是Toast.makeText(this, "再点击一次退出"+v.getId(), Toast.LENGTH_LONG).show();
    这一句里面的吗?这个是我为了做测试后来加上去的,去掉这句也是报错的
    InitTextView() 这个我是放在onCreate里面最后一行,不知道 位置影响执行吗?不过我都试过几个位置,都是报错
      

  14.   

    再写点击事件的话最好用监听吧
    先前看的事例用的就是监听,不过就是报错 ,所以我就试试这种方式上一层里说了  private void InitTextView() {
            t1 = (TextView) findViewById(R.id.text1);
            t2 = (TextView) findViewById(R.id.text2);
            t3 = (TextView) findViewById(R.id.text3);        t1.setOnClickListener(new MyOnClickListener(0));
            t2.setOnClickListener(new MyOnClickListener(1));
            t3.setOnClickListener(new MyOnClickListener(2));
        }
        /**
         * 头标点击监听
    */
        public class MyOnClickListener implements View.OnClickListener {
            private int index = 0;        public MyOnClickListener(int i) {
                index = i;
            }        @Override
            public void onClick(View v) {
               Toast.makeText(this, "再点击一次退出"+v.getId(), Toast.LENGTH_LONG).show();
            }
        };  
    MyOnClickListener类里面的onClick方法中的this有问题,用activity的类名.this
    你说的是Toast.makeText(this, "再点击一次退出"+v.getId(), Toast.LENGTH_LONG).show();
    这一句里面的吗?这个是我为了做测试后来加上去的,去掉这句也是报错的
    InitTextView() 这个我是放在onCreate里面最后一行,不知道 位置影响执行吗?不过我都试过几个位置,都是报错你确定代码编译过去了?
      

  15.   

    回复#16  :  应该是编译过去了吧? 呃,模拟的虚拟设置的界面可以出来,就是app一点就被迫关闭了
    请原谅偶~~~是初初学者,以前也不是做java的,很多东西不懂
      

  16.   

       Toast.makeText(this, "再点击一次退出"+v.getId(), Toast.LENGTH_LONG).show();
    this改成(你的activity).this
      

  17.   

    为什么不用监听? 很简单的。代码:
    ...
    TextView tv1 = (TextView)findViewById(R.id.tv1);
            tv1.setOnClickListener(new View.OnClickListener() 
            {

    @Override
    public void onClick(View v) {
    // TODO Auto-generated method stub
           Log.d("Logcat Debug", "Debug: You clicked TextView...");
        Toast.makeText(MainActivity.this, "再点击一次退出: "+v.getId(), Toast.LENGTH_LONG).show();

    }
    });
    ...
      

  18.   

    其实楼上的方法是最好也最常用的,代码条理清晰易于修改。楼主既然已经学Android开发,编码规范也最好参考一下,不容易出些莫名其妙的问题。
    如果还想在源代码段上修改,试试下面这样的方式,看看怎么样:
    private void InitTextView() {
            t1 = (TextView) findViewById(R.id.text1);
            t2 = (TextView) findViewById(R.id.text2);
            t3 = (TextView) findViewById(R.id.text3);
            
            MyOnClickListener myonclickListener=new MyOnClickListener( );
            t1.setOnClickListener(myonclickListener);
            t2.setOnClickListener(myonclickListener);
            t3.setOnClickListener(myonclickListener);
        }
        /** * 头标点击监听*/
        public class MyOnClickListener implements View.OnClickListener {
            @Override
            public void onClick(View v) {
               switch(v.getId())
        {
         case R.id.text1:Toast.makeText(MainActivity.this, "再点击一次退出"+v.getId(), Toast.LENGTH_LONG).show();
         case R.id.text2:Toast.makeText(MainActivity.this, "再点击一次退出"+v.getId(), Toast.LENGTH_LONG).show();
                 case R.id.text3:Toast.makeText(MainActivity.this, "再点击一次退出"+v.getId(), Toast.LENGTH_LONG).show();
                }
            }
        }; 
      

  19.   

    感谢楼上两大侠~ 我知道我的问题在哪里了,因为我的eclipse是最新版,新建的项目默认是带碎片xml的,而我的所有组件是写在这个fragment.xml里,所以在获取的时候应该也要写到这个对应的方法下,现在已经解决了
      

  20.   

    之前是写的mainactivity里是获取不到那些组件的也感谢上面楼层的大侠的提示:说获取的组件为null
    然后就往这方面考虑,为什么获取不到
      

  21.   

    这个,跟eclipse 版本没什么关系吧,可能和ADT plugin的版本有点关系。在新建project 的向导界面,应该允许你去选择创建什么样的activity, 缺省的是blank activity, 就是带一个 textview 显示
    "Hello world" .