2013-01-17 1 views
1

나는 문제가 아마도 매우 간단하지만, 내가 뭘 잘못하고 있는지 이해하지 못한다. 나는 파일 브라우저로로드되는 listview있다. 이것은 어떤 항목을 클릭 할 때 일어나는 일입니다.목록보기 OnItemClickListener가 작동하지 않습니까?

protected void onListItemClick(ListView l, View v, int position, long id) { 

File file = new File(path.get(position)); 

if (file.isDirectory()) 
{ 

if(file.canRead()) 
getDir(path.get(position)); 
else 
{ 
new AlertDialog.Builder(this) 
.setIcon(R.drawable.ic_launcher) 
.setTitle("[" + file.getName() + "] folder can't be read!") 
.setPositiveButton("OK", 
    new DialogInterface.OnClickListener() { 
    public void onClick(DialogInterface dialog, int which) { 
    // TODO Auto-generated method stub 
    } 
    }).show(); 
} 

} 
else 
{ 
new AlertDialog.Builder(this) 

.setIcon(R.drawable.ic_launcher) 

.setTitle("[" + file.getName() + "]") 

.setPositiveButton("OK", 

    new DialogInterface.OnClickListener() { 


    public void onClick(DialogInterface dialog, int which) { 

    // TODO Auto-generated method stub 

    } 

    }).show(); 

} 

} 

하지만 항목을 클릭해도 아무런 변화가 없습니다. 나는 심지어 내가 클릭 할 때 어떤 활동이라도 theres를보기 위해 logcat를 점검했다. 그러나 절대적으로 아무것도 없다. 어떻게 든이 수신기를 특정 목록보기에 연결해야합니까? 또한 더 많은 정보를 게시해야하는 경우 알려 주시기 바랍니다. 당신의 도움을 주셔서 대단히 감사합니다!

새로운 문제이 두 가지에

AlertDialog show = new AlertDialog.Builder(this) 
.setIcon(R.drawable.ic_launcher) 
.setTitle("[" + file.getName() + "] folder can't be read!") 
.setPositiveButton("OK", 
    new DialogInterface.OnClickListener() { 
    public void onClick(DialogInterface dialog, int which) { 
    // TODO Auto-generated method stub 
    } 
    }).show(); 
} 

} 
else 
{ 
new AlertDialog.Builder(this) 
.setIcon(R.drawable.ic_launcher) 
.setTitle("[" + file.getName() + "]") 
.setPositiveButton("OK", 
    new DialogInterface.OnClickListener() { 

    public void onClick(DialogInterface dialog, int which) { 

    // TODO Auto-generated method stub 

    } 

    }).show(); 

} 

, 임은에 AlertDialog이 정의되지 없다는 오류를 받고.

+0

정확한 오류 메시지는 무엇입니까? 그리고 언제? 런타임 또는 빌드 중 귀하의 코드에서 alertDialog가 보이지 않습니다. AlertDialog를 의미합니까? 그렇다면 소스 파일로 가져 오는 것을 잊어 버렸습니까? – haffax

답변

1

예, 당신은 OnItemClickListener

일예로 ListView을 등록해야 이 같은 :

myListView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
    @Override 
    public void onItemClick(AdapterView<?> list, 
     View view, int position, long id) { 
     // Your code goes here 
    } 
}); 
+0

좋아, 방금 해봤는데 이제는 실제로 효과가있다. 문제가 하나 더 생길 수 있습니까? AlertDialog.Builders에 오류가 있습니다. 그것의 정의되지 않은, 그리고 그것을 정의하려고했지만 꽤 작동하지 않습니다. 틀림없이 뭔가 빠졌어. 이걸 도와 줄 수 있니? –

+0

질문을 주 질문에 추가했습니다. 감사!! –

1

변경 "이"을 "YourActivityName.this"에서 문맥

예를 들어, 새에 AlertDialog.Builder (YourActivityName.this);

관련 문제