Java setOnItemClickListener不使用自定义TextView ListView适配器
我有一个Java setOnItemClickListener不使用自定义TextView ListView适配器,java,android,listview,android-listview,android-arrayadapter,Java,Android,Listview,Android Listview,Android Arrayadapter,我有一个文本视图列表视图,其中包含一系列字体。当用户按下其中一种字体时,将调用一个函数来更改其他一些TextView的Typeface final ListView fontsListView = (ListView) this.view.findViewById(R.id.MenuLayout); final String[] fonts = new String[] { "Aclonica", "Arimo-Regular", "Calligr
文本视图
列表视图
,其中包含一系列字体
。当用户按下其中一种字体时,将调用一个函数来更改其他一些TextView
的Typeface
final ListView fontsListView = (ListView) this.view.findViewById(R.id.MenuLayout);
final String[] fonts = new String[] {
"Aclonica",
"Arimo-Regular",
"Calligraffitti-Regular",
"CherryCreamSoda",
"Chewy",
"ComingSoon",
"Cousine-Regular",
"CraftyGirls",
"CreepsterCaps-Regular",
"Crushed",
"FontdinerSwanky",
"HomemadeApple",
"IrishGrover",
"Nokora-Regular",
"JustAnotherHand",
"Kranky",
"LuckiestGuy",
"MaidenOrange",
"Montez-Regular",
"MountainsofChristmas-Regular"
};
ArrayList<String> fontsList = new ArrayList<String>();
fontsList.addAll( Arrays.asList(fonts) );
ArrayAdapter<String> listAdapter = new AdapterFontViewHolder(getActivity(), fonts);
fontsListView.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
Aclonica();
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
fontsListView.setAdapter(listAdapter);
这样,我就不必为每种字体都具有唯一的函数。setOnItemClickListener而不是setonimselectedlistener
fontsListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Aclonica();
}
});
fontsListView.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
Aclonica();
}
});
setOnItemClickListener而不是setOnItemSelectedListener
fontsListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Aclonica();
}
});
fontsListView.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
Aclonica();
}
});
更改此选项:
fontsListView.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener()
到
更改此项:
fontsListView.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener()
到
在以下行之后:
final ListView fontsListView = (ListView) this.view.findViewById(R.id.MenuLayout);
添加以下代码:
fontsListView.setOnItemClickListener(new OnItemClickListener()
{
@Override
public void onItemClick(AdapterView<?> adapter, View v, int position,
long arg3)
{
String value = fonts[position] ;
// assuming string and if you want to get the value on click of list item
// do what you intend to do on click of listview row
}
});
fontsListView.setOnItemClickListener(新的OnItemClickListener()
{
@凌驾
公共单击(适配器视图适配器,视图v,内部位置,
长arg3)
{
字符串值=字体[位置];
//假设字符串,如果您想在单击列表项时获取值
//在单击listview行时执行您想要执行的操作
}
});
在以下行之后:
final ListView fontsListView = (ListView) this.view.findViewById(R.id.MenuLayout);
添加以下代码:
fontsListView.setOnItemClickListener(new OnItemClickListener()
{
@Override
public void onItemClick(AdapterView<?> adapter, View v, int position,
long arg3)
{
String value = fonts[position] ;
// assuming string and if you want to get the value on click of list item
// do what you intend to do on click of listview row
}
});
fontsListView.setOnItemClickListener(新的OnItemClickListener()
{
@凌驾
公共单击(适配器视图适配器,视图v,内部位置,
长arg3)
{
字符串值=字体[位置];
//假设字符串,如果您想在单击列表项时获取值
//在单击listview行时执行您想要执行的操作
}
});
您在logcat中收到任何错误消息吗?@sasikumar没有任何错误消息。应用程序一直在运行。似乎click listener出于某种原因没有连接。您在问题中说了setonimclickListener
,但您已经实现了setonimselectedListener
?是否执行listview.setonimclickListener日志中是否有任何错误消息?@sasikumar没有任何错误消息。应用程序一直在运行。似乎click listener出于某种原因没有连接。您在问题中说了setOnItemClickListener
,但您已经实现了setOnItemSelectedListener
?执行listview.setOnItemClickListener这是最有效的解决方案。请参阅上面我更新的答案。这是最有效的解决方案。请参阅上面我的更新答案。