我有一个包含学期列表的活动。按任意一个学期将创建一个新活动,并提示用户在学期的每个科目中输入分数来计算百分比。我有两个选择:
1)按下时为每个学期创建一个新活动
2)创建单个活动,但要根据按钮更改文本视图 按
我选择了第二个。但遗憾的是,我选择ListView
来更改TextView
。This is how my activity looks like
但我遇到了问题。
1)当我在一行中输入标记时。在底行重复相同的标记。例如,当我在M1中输入标记时,同样在英语实验室中重复。
我预计问题出在ListView
这是我adapter
ListView
getView
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/txtview"
android:text="subject"
android:layout_width="wrap_content"
android:layout_alignParentLeft="true"
android:paddingLeft="10dp"
android:textSize="20dp"
android:textColor="@color/black"
android:layout_height="wrap_content"
android:layout_weight="0.7"
android:paddingRight="15dp"
android:textStyle="bold"
/>
<EditText
android:cursorVisible="true"
android:id="@+id/ScanText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="0.3"
android:layout_toRightOf="@id/textView"
android:inputType="number"
android:layout_marginTop="10dp"
/>
</RelativeLayout>
方法
getView
我的adapter
方法的java代码。这里MarksEntering
被实现为 public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
convertView = LayoutInflater.from(context).inflate(R.layout.sidebyside, parent, false);
Button b = (Button) v.findViewById(R.id.submitbutton);
b.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(context, "Congratulations!Your % is"+ percentage, Toast.LENGTH_SHORT).show();
}
});
}
TextView textView = (TextView) convertView.findViewById(R.id.txtview);
final EditText editText = (EditText) convertView.findViewById(R.id.ScanText);
editText.setCursorVisible(true);
textView.setText(str[position]);
return convertView;
}
活动的内部类(包含listview布局)
ListView
我的 <LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<ListView
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:id="@android:id/list"></ListView>
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Submit"
android:layout_marginLeft="0dp"
android:id="@+id/submitbutton"/>
</LinearLayout>
所在的XML文件是:
EditText
正如您所见,提交按钮位于列表视图下方。因此,我需要计算获取LayoutInflater
实例所需的百分比(为了获取在EditText中输入的标记)。但我无法得到它。当我使用ViewGroup
时,我没有EditText
获取ViewGroup
存在的布局。无论如何,我仍然可以克服这两个问题(获得View
和克服标记的重复。)或者我必须使用其他ListView
代替curl.haxx.se/ca/cacert.pem