Android 修改listView的元素如何访问它

Android 修改listView的元素如何访问它,android,listview,Android,Listview,我了解到,为了修改listView中的行,我需要通过adapter.getItem(position)获得访问权限,但我不知道如何解决这个问题。如果我发布任何代码,请让我知道。 这是我的EditListItemDialog文件: package com.example.classorganizer; import java.util.ArrayList; import java.util.List; import com.example.classorganizer.Monday.Diary

我了解到,为了修改listView中的行,我需要通过adapter.getItem(position)获得访问权限,但我不知道如何解决这个问题。如果我发布任何代码,请让我知道。 这是我的EditListItemDialog文件:

package com.example.classorganizer;

import java.util.ArrayList;
import java.util.List;

import com.example.classorganizer.Monday.DiaryAdapter;

import android.app.Dialog;
import android.content.Context;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;

class EditListItemDialog extends Dialog implements View.OnClickListener {

private View editText;
private DiaryAdapter adapter;

  //  public EditListItemDialog(Context context, List<String> fragment_monday) {         //first constructor
  //      super(context);
  //      this.fragment_monday = fragment_monday;
  //  }

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.edit_text_dialog);//here is your xml with EditText and 'Ok' and 'Cancel' buttons
View btnOk = findViewById(R.id.button_ok);
editText = findViewById(R.id.edit_text);
btnOk.setOnClickListener(this);

}

private List<String> fragment_monday;


public EditListItemDialog(Context context, DiaryAdapter adapter) {
super(context);
this.fragment_monday = new ArrayList<String>();
this.adapter = adapter;
}

@Override
public void onClick(View v) {
fragment_monday.add(((TextView) v).getText().toString());//here is your updated(or not updated) text
adapter.notifyDataSetChanged();
dismiss();
}
}
package com.example.classorganizer;
导入java.util.ArrayList;
导入java.util.List;
导入com.example.classorganizer.Monday.DiaryAdapter;
导入android.app.Dialog;
导入android.content.Context;
导入android.os.Bundle;
导入android.view.view;
导入android.widget.TextView;
类EditListItemDialog扩展对话框实现View.OnClickListener{
私有视图编辑文本;
专用日记适配器;
//公共EditListItemDialog(上下文上下文,列表片段){//第一个构造函数
//超级(上下文);
//this.fragment\u monday=fragment\u monday;
//  }
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.edit_text_dialog);//这是带有EditText和“Ok”和“Cancel”按钮的xml
查看btnOk=findviewbyd(R.id.button_ok);
editText=findviewbyd(R.id.edit\u text);
btnOk.setOnClickListener(这个);
}
星期一的私人名单;
公共EditListItemDialog(上下文上下文,日记适配器){
超级(上下文);
this.fragment_monday=new ArrayList();
this.adapter=适配器;
}
@凌驾
公共void onClick(视图v){
fragment_monday.add(((TextView)v.getText().toString());//这是您更新(或未更新)的文本
adapter.notifyDataSetChanged();
解雇();
}
}

您必须实现一个MClickListener,它能够告诉您单击了什么项目。例如:

public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
    //Position is the number of the item clicked
    //You can use your adapter to modify the item
    adapter.getItem(position); //Will return the clicked item
}
public void onItemClick(AdapterView父视图、视图视图、整型位置、长id){
//Position是单击的项目的编号
//您可以使用适配器修改该项
adapter.getItem(position);//将返回单击的项
}
更多信息,请参见官方Android。

package com.example.classorganizer;
      package com.example.classorganizer;

      import java.util.ArrayList;
      import java.util.List;

      import com.example.classorganizer.Monday.DiaryAdapter;

      import android.app.Dialog;
      import android.content.Context;
      import android.os.Bundle;
      import android.view.View;
      import android.widget.TextView;
   public class EditListItemDialog extends Activity {
     ListView listView ;
     private View editText;

   @Override
   protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
     setContentView(R.layout.edit_text_dialog);
     View btnOk = findViewById(R.id.button_ok);
       editText = findViewById(R.id.edit_text);
      btnOk.setOnClickListener(this);
    listView = (ListView) findViewById(R.id.list)

     String[] values = new String[] { "Automotive", "Banking", "Consumer Electronics",  
     "Education", "HealthCare and Life Sciences","Industrial Automation","Printing and 
      Imaging","Manufacturing","Media and 
      Entertainment","Networking","Retail","Telecom"
                                    };

    // Define a new Adapter
    // First parameter - Context
    // Second parameter - Layout for the row
    // Third parameter - ID of the TextView to which the data is written
    // Forth - the Array of data

    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
      android.R.layout.simple_expandable_list_item_1, values);


    // Assign adapter to ListView
    listView.setAdapter(adapter); 
     }
    }
导入java.util.ArrayList; 导入java.util.List; 导入com.example.classorganizer.Monday.DiaryAdapter; 导入android.app.Dialog; 导入android.content.Context; 导入android.os.Bundle; 导入android.view.view; 导入android.widget.TextView; 公共类EditListItemDialog扩展活动{ 列表视图列表视图; 私有视图编辑文本; @凌驾 创建时受保护的void(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.edit_text_对话框); 查看btnOk=findviewbyd(R.id.button_ok); editText=findviewbyd(R.id.edit\u text); btnOk.setOnClickListener(这个); listView=(listView)findViewById(R.id.list) 字符串[]值=新字符串[]{“汽车”、“银行”、“消费电子”, “教育”、“医疗保健与生命科学”、“工业自动化”、“印刷与制造” 影像、制造、媒体和 娱乐、网络、零售、电信 }; //定义一个新适配器 //第一个参数-上下文 //第二个参数-行的布局 //第三个参数-写入数据的TextView的ID //第四,数据数组 ArrayAdapter=新的ArrayAdapter(此, android.R.layout.simple_可扩展_列表_项目_1,值); //将适配器分配给ListView setAdapter(适配器); } }

将此代码用于simple Listview。

此代码是否替代了上面文件中的onClick方法?这是一个我希望向您展示其工作原理的示例。您必须修改它以满足您的需求(这应该不会太困难)。