2012-01-26 17 views
0

어떻게 autoComplete를 초기화합니까? AutoCompleteTextView와 함께 사용할 수는 없기 때문에 로컬 변수가 중복되었음을 알 수 있습니다. 그것을 정적으로 선언하려고 시도했지만 허용되지 않습니다.로컬 변수가 초기화되지 않았을 수 있습니다.

제발 상담하십시오!

public class Search extends Activity { 
    public void onCreate(Bundle savedInstanceSate) { 
     final int autoComplete; 
     super.onCreate(savedInstanceSate); 
     setContentView(R.layout.searchshop); 

     //The duplicate im talking about 
     AutoCompleteTextView autoCompletee = (AutoCompleteTextView) findViewById(R.id.autoCompleteTextView1); 
     ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.list_item, shops); 
     autoCompletee.setAdapter(adapter); 
     autoCompletee.setThreshold(1); 
     autoCompletee.setOnItemClickListener(new OnItemClickListener() { 

     @Override 
     public void onItemClick(AdapterView<?> arg0, View arg1, int position, long arg3) { 
       Intent intent; 
       int index=999; 
       for(int i=0;i<shops.length;i++) { 
         //The local variable autoComplete may not been initialized 
        if(shops[i].equals(Integer.toString(autoComplete))) { 
         index=i; 
         break; 
        } 
       } 
       switch(index) { 
        case 0: 
         intent=new Intent(Search.this, Adidas.class); 
         startActivity(intent); 
         break; 
        case 1: 
         intent=new Intent(Search.this, Affin.class); 
         startActivity(intent); 
         break; 
       } 
      } 
     }); 
    } 

    static final String[] shops = new String[] { 
       "Adidas", "Affin Bank", "Alam Art", "Al Amin" 
    }; 
} 
+0

이것은 의미가 없습니다. autoComplete라는 어떤 변수도 할당되지 않은 변수가 있습니다. 물론 초기화되지 않았습니다. 질문이 뭐야? –

+0

답변은 'autoComplete'에 어떤 가치가 있는지에 달려 있습니다. – dasblinkenlight

+0

질문은 방법, 그러나 왜 그렇게 많은 것이 아닙니다. 내가 볼 수있는 한, 항상 false를 반환하는 하나의'equals' 호출을 제외하고 변수는 사용되지 않습니다. – biziclop

답변

-1

자동 완성 필드는 로컬 변수로 사용되며 기본값으로 설정해야합니다.

그냥이 코드에서 세 번째 문으로, 처음 두 문장은 슈퍼해야한다 ....와의 setContent (...)

+0

그는 항상 0과 같은 변수를 갖게 될 것입니다. 무엇 때문에? –

+0

무엇을 원하십니까? 영업 이익 알고. 문제는 로컬 변수가 초기화되지 않았기 때문에 응답으로 해결됩니다. 대답은 질문입니다. 이해하지 downvote. 코드에서 자동 완료에 일부 값을 할당하는 경우는 없습니다. – kosa

+0

OP가 혼란스럽고 그를 혼란스럽게하는 데 도움이되지 않습니다. –

0

static, final 등이 될하기 위해 int autoComplete 수정 final int autoComplete=0;

이동을 설정 컴파일러가 이미 "autoComplete"라는 변수가 있다는 사실에 대해 불평하고 있기 때문에 문제가되지 않습니다. 실제 코드 예제에서 AutoCompleteTextView의 이름을 autoComplete과 다른 두 개의 e를 사용하여 "autoCompletee"로 명명했습니다. 그러나 int autoCompleteValue 또는 그 라인을 따라 뭔가 더 의미있는 변수 이름을 사용하는 것이 좋습니다. 어느 쪽이든, 문제는 변수 충돌입니다. 특정 이름의 범위에 변수가 있으면 해당 이름을 다시 사용할 수 없습니다.

관련 문제