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这是最有效的解决方案。请参阅上面我更新的答案。这是最有效的解决方案。请参阅上面我的更新答案。