【问题标题】:Pass Multiple Items in ArrayAdapter在 ArrayAdapter 中传递多个项目
【发布时间】:2015-08-14 15:56:05
【问题描述】:

我是 Android 新手。我陷入了学习困境。我想显示如下图的结果

这是我在代码中所做的逻辑。

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    String[] imagesList = new String[4];
    for(int i=0; i<4; i++){
        imagesList[i] = "Image "+ i;
    }

    ArrayAdapter<String> stringAdapter = new ArrayAdapter<String>(
            this,
            R.layout.activity_main,
            R.id.textView,
            new ArrayList<String>(Arrays.asList(imagesList))
    );
    setListAdapter(stringAdapter);
}

还有一件事是字符串大小可以改变。目前它是 4 它可以是 10 或任何其他整数。如果数量增加,那么我将应用 swiper,但目前我不需要。

【问题讨论】:

    标签: android android-studio android-arrayadapter


    【解决方案1】:

    您应该使用网格视图来实现您想要实现的目标http://developer.android.com/guide/topics/ui/layout/gridview.html

    另一种方法是制作自己的自定义 ArrayAdapter,并为每一行使用一个具有水平方向的 LinearLayout 和 4 个 TextView,每个 TextView 代表一列。

    【讨论】:

      【解决方案2】:
      public class MainActivity extends Activity {
      
          String[] val={
                  "one",
                  "two",
                  "Three",
                  "four",
                  "five",
                  "six",
                  "seven"
                  };
          ListView lt1;
      
          @Override
          protected void onCreate(Bundle savedInstanceState) {
              super.onCreate(savedInstanceState);
              setContentView(R.layout.activity_main);
      
          lt1=(ListView)findViewById(R.id.listView1); //lt1=instance of Listview which is declared globally
      
          ArrayAdapter<String> adapter=new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,android.R.id.text1, val);
          lt1.setAdapter(adapter);
          lt1.setOnItemClickListener(new OnItemClickListener() {
      
              @Override
              public void onItemClick(AdapterView<?> parent, View view, int position,
                  long id) {
      
                  // TODO Auto-generated 2method stub
                  //clicked item index 
                  int itemPosition=position;
      
                  //list item clicked value
                  String itemvalue=(String)lt1.getItemAtPosition(position);
                  Toast.makeText(getApplicationContext(), "position: "+itemPosition+"Listitem: "+itemvalue, Toast.LENGTH_LONG).show();    
              }
          });
      
      
      }
      

      【讨论】:

      • 虽然此代码可能会回答问题,但提供有关此代码为何和/或如何回答问题的额外上下文可提高其长期价值。
      • 通过此代码,您可以通过使用 arrayAdapter 和 ListView 添加多个项目
      • @YogitabaJadeja 这只会列出当前我的代码列出的所有数据。
      猜你喜欢
      • 2012-07-20
      • 1970-01-01
      • 1970-01-01
      • 2013-04-20
      • 1970-01-01
      • 2015-06-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多