单击ArrayAdapter中的Item

时间:2015-01-21 08:11:29

标签: android arraylist android-arrayadapter

好吧,现在我已尽我所能,而且我搞砸了。我如何制作它以便我可以单击列表中的每个项目并编辑其中的文本?现在我已经在列表中硬编码了2个项目,当我点击它们时,我希望能够编辑和添加内容。 我不知道该怎么做。 请帮我!

我的列表课程

package se.felix.anteckningsblock;

import android.app.ListActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.SimpleAdapter;
import android.widget.TextView;
import android.widget.Toast;

import java.util.ArrayList;


public class Notelist extends ListActivity {

    ArrayList<String> notes = new ArrayList<String>();
    ArrayAdapter<String> list;

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




            setContentView(R.layout.notelist);

            notes.add("Handlingslista");
            notes.add("Kom Ihåg");

            ArrayAdapter<String> list = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, notes);
            setListAdapter(list);
            //adapter.notifyDataSetChanged(); // <---- use this to notify data change to update list!!!111oneoneoneleven


            Button button = (Button) findViewById(R.id.New);
            button.setOnClickListener(new View.OnClickListener() {
                public void onClick(View v) {
                    Intent i = new Intent(Notelist.this, anteckningsblock.class);
                    startActivity(i);
                }
            });

    }
}

我的anteckningsblock课程(这是我编辑笔记,创建新笔记的地方,但它不起作用)

package se.felix.anteckningsblock;

import android.content.ActivityNotFoundException;
import android.content.Context;
import android.content.Intent;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.inputmethod.InputMethodManager;
import android.widget.Button;
import android.view.View.OnClickListener;
import android.app.Activity;


public class anteckningsblock extends ActionBarActivity {



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

    Button button = (Button)findViewById(R.id.GoBack);
    button.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
            Intent i = new Intent(anteckningsblock.this, Notelist.class);
            startActivity(i);
        }
    });

    }

}

如果您还有其他需要请告诉我,我会编辑。

3 个答案:

答案 0 :(得分:0)

尝试使用edittext而不是textviews填充listView up

答案 1 :(得分:0)

将此数组放入单例类中或将其设置为静态 - (考虑采用第一个选项)

ArrayList<String> notes = new ArrayList<String>();

现在在 listActivity类中捕获已单击的项目/或使用onListItemClick(ListView l, View v, int position, long id)方法的索引。然后使用startactivity intent.putString()的意图传递它并传递你的字符串

Intent i = new Intent(anteckningsblock.this, Notelist.class);
i.putString("myarraypos",position); // the key is the name you use to retrieve..
startActivity(i); // i am passing the int of the array so we can edit it

请注意,上面的代码应该在上面的onListItemClick函数中

并在静态arraylist

中编辑并替换旧的
//assuming you are done editing
Classname.notes.add(getintent().getStringExtra("myarraypos"),value);

正确的代码名称和代码

答案 2 :(得分:0)

我解决了。感谢@Elitz让我走上正轨:)

我把它放在我的 Notelist Class

@Override
    protected void onListItemClick(ListView l, View v, int position, long id) {
        Intent i = new Intent(Notelist.this, anteckningsblock.class);
        startActivity(i);