StringBuilder和ArrayAdapter出错

时间:2015-07-29 14:49:02

标签: java android android-listview android-arrayadapter stringbuilder

我在尝试将StringBuilder传递到ArrayAdapter时遇到问题,以便它将显示在ListView中。我在编译时得到无法解析构造函数错误并且我确定它与StringBuilder有关。 Java不是我的第一语言,所以对答案的任何解释都非常感激。

这是我的代码

public class MainActivity extends Activity {

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

        ActivityManager activityManager = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
        List<ActivityManager.RunningAppProcessInfo> list = activityManager.getRunningAppProcesses();


        StringBuilder info = new StringBuilder();
        for (int i = 0; i < list.size(); i++) {
            info.append(list.get(i).processName + "\n");
        }
        ArrayAdapter<StringBuilder> adapter = new ArrayAdapter<StringBuilder>(this,android.R.layout.simple_list_item_1, info);
        ListView listView = (ListView) findViewById(R.id.listView1);
        listView.setAdapter(adapter);

   }

   @Override
   public boolean onCreateOptionsMenu(Menu menu) {
       // Inflate the menu; this adds items to the action bar if it is present.
       getMenuInflater().inflate(R.menu.menu_main, menu);

       return true;
   }
}

1 个答案:

答案 0 :(得分:3)

没有#arrowbox { width: 200px; height: 50px; background-color:green; margin-left:100px; margin-top:100px; position: relative; } #arrowbox:after { left: 100%; top: 50%; border: solid transparent; content: " "; height: 0; width: 0; position: absolute; pointer-events: none; border-color: rgba(0, 128, 0, 0); border-left-color: #008000; border-width: 25px; margin-top: -25px; } #arrowbox:before { right: 100%; top: 50%; border: solid transparent; content: " "; height: 0; width: 0; position: absolute; pointer-events: none; border-color: rgba(0, 128, 0, 0); border-right-color: #008000; border-width: 25px; margin-top: -25px; } 的构造函数将StringBuilder作为参数。使用ArrayAdapter

ArrayList

应该这样做。

编辑:

你也应该使用

ArrayList<String> info = new ArrayList<>(); for (ActivityManager.RunningAppProcessInfo p : list) { info.add(p.processName); } 代替ArrayAdapter<String>