2014-03-27 113 views
0

这可能看起来很奇怪,但我试图显示我在列表视图项目上创建的自定义视图。 我的自定义视图平键盘和弦,当我告诉他们在这个FragmentActivity工作, ViewPager,等我做了,因为我曾做过,创建一个XML文件作为列表项,实现从ArrayAdapter扩展一个类 。当我膨胀一个XML文件时,它工作得很好,但是当我使用我的自定义视图类时,它不起作用 ,它没有xml文件。你们有什么线索吗?我的代码如下。非常感谢:)在列表项视图中显示自定义视图

public class ShowChordActivityNew extends Activity { 

    private ListView chordList; 

    private List<KeyboardChordDiagram> aList; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_show_chord_activity_new); 

     chordList = (ListView) findViewById(R.id.lvChords); 
     // this array is a chord I'm using to test this before moving to my working code 
     int[] chord = new int[] { 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; 
     aList = new ArrayList<KeyboardChordDiagram>();  
     aList.add(new KeyboardChordDiagram(getApplicationContext(), "A", chord)); 
     aList.add(new KeyboardChordDiagram(getApplicationContext(), "A", chord)); 
     aList.add(new KeyboardChordDiagram(getApplicationContext(), "A", chord)); 


     chordList.setAdapter(new MyAdpater()); 
    } 

    private class MyAdpater extends ArrayAdapter<KeyboardChordDiagram> { 

     public MyAdpater() { 
      super(getApplicationContext(), R.layout.fragment_list_item, aList); 
     } 

     @Override 
     public View getView(int position, View convertView, ViewGroup parent) { 
      View itemView = convertView; 
      if (itemView == null) { 
       //since my class extends View, this should work, right? 
       KeyboardChordDiagram a = aList.get(position);  
       itemView = a;     
      } 

      return itemView; 
     } 

    } 
} 

//这里是我的KeyboardChordDiagram类的构造函数 公共类KeyboardChordDiagram扩展ChordDiagram { .....

public KeyboardChordDiagram(Context context, String aChordName, int[] aChord) { 
    super(context, aChordName); 
    chord = aChord; 
    ..... 
} 

.... 

}

//这里的ChordDiagram类:

公共抽象类ChordDiagram扩展视图实现OnClickListener {

..... 

public ChordDiagram(Context context, String aChordName) { 
    super(context); 
    ..... 
} 
.... 

}

+0

请出示'KeyboardChordDiagram'类,或至少它的构造。您应该在'getView'函数内创建新的'KeyboardChordDiagram'。你的问题是你没有建立和弦与列表的父/子关系。 – frozenkoi

+0

我编辑了这个问题来添加construtor。我正在努力理解我应该如何将和弦与列表绑定在一起。我试图在getView()方法中实例化一个KeyboardChordDiagram,传递getContext()作为参数,但它没有工作:( –

回答

0

您还没有绑定的值放置在你的ItemView控件的意见。我认为你需要将来自“a”对象的值绑定到列表视图行。也就是说缺少getView