线程可以传参数的。  声明参数。给其set 方法。 然后直接set值即可。
或者创建全局变量。

解决方案 »

  1.   

    内部类访问外部变量需要将变量声明为final,
    这里也就是参数x需要声明为final
    void listen(final int x)   // 方法
    {
       new Thread(new Runnable()
       {
       @Override
       public void run() {
                    //  这里没法访问局部参数x 
             int a = x;
         }
       });    
    }
      

  2.   


    如果楼主的需求x可能会改变的时候,那就在方法内再定义个final变量
    final int tmp = x;
    然后在线程内run()方法中访问tmp变量。
      

  3.   

    void listen(int x)   // 方法
    {
       new Thread(new Runnable()
       {
       @Override
       public void run()
                {
                    //  这里没法访问局部参数x 
                }
       }).start();    

    这种即时线程的缺陷,不能访问方法参数!!!
    要改成扩充Thread的办法才能解决!
    class MyThread  extends Thread 
    {  
          int _x;
          public MyThread(int x)
          {
             _x=x;
          }
          public void run()
          {  
             // 访问 _x        
          }  
    };
      

  4.   

    我试过了,final的办法是对的。