我已经搜索并找不到我的问题的答案,所以我希望我没有完全找错树(可以这么说)。
我是 android 新手,已经开始创建一个应用程序。我的应用程序在一个屏幕上使用公共类 DatabaseHandler 扩展 SQLiteOpenHelper 创建并向 SQLite 数据库添加条目,这一切似乎都有效。
我检索所有数据并将其填充到网格中,现在这又可以了。
我的问题是我无法从网格中检索出一条完整的线。
我使用以下代码填充/显示网格。
我已经剪掉了很多,因为网格是分阶段制作的,标题,空白行等,但网格确实按我想要的方式显示。
当我触摸一条线时,它会显示其唯一的 id。
onClick 就在最后,当我使用 getText() 而不是 getID() 时,它返回的只是 labelDate 中的数据。如何检索下面列出的所有标签?
包com.pump.diary;
import java.util.List;
import android.app.Activity;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.graphics.Color;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup.LayoutParams;
import android.widget.TableLayout;
import android.widget.TableRow;
import android.widget.TextView;
import android.widget.Toast;
public class PumpDiaryReview extends Activity implements android.view.View.OnClickListener{
DatabaseHandler db = new DatabaseHandler(this);
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_pump_diary_review);
TableLayout tl = (TableLayout) findViewById(R.id.gridview);
boolean doFirstHeadings = true;
String dateCheck = "";
Integer count=0;
List<Readings> readings = db.getAllReadings();
for (Readings re : readings)
{
if (doFirstHeadings == true)
{
//First record so setup the headings.
TableRow tr_head = new TableRow(this);
tr_head.setId(10);
tr_head.setBackgroundColor(Color.GRAY);
tr_head.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT));
TextView label_date = new TextView(this);
label_date.setText("Date:Time");
TextView label_CP = new TextView(this);
label_CP.setText("CP");;
TextView label_BG = new TextView(this);
label_BG.setText("BG");
TextView label_QA = new TextView(this);
label_QA.setText("QA");
TextView label_CN = new TextView(this);
label_CN.setText("CN");
TextView label_KT = new TextView(this);
label_KT.setText("KT");
TextView[] tvHeaderArray = {label_date, label_CP, label_BG, label_QA, label_CN, label_KT};
for (TextView tvHeader : tvHeaderArray)
{
tvHeader.setTextColor(Color.WHITE);
tr_head.addView(tvHeader);
}
tl.addView(tr_head, new TableLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT));
doFirstHeadings = false;
count = 0;
}
// Create the table row
TableRow tr = new TableRow(this);
tr.setClickable(true);
tr.setId(100+count);
tr.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT));
TextView labelDATE = new TextView(this);
TextView labelCP = new TextView(this);
TextView labelBG = new TextView(this);
TextView labelQA = new TextView(this);
TextView labelCN = new TextView(this);
TextView labelKT = new TextView(this);
TextView[] tvArray = {labelDATE, labelCP, labelBG, labelQA, labelCN, labelKT};
if (!dateCheck.equals(re.getDate()) || (dateCheck == null) || dateCheck == "")
{
//Add a blank line in.
TableRow tr_blank = new TableRow(this);
tr_blank.setId(10);
tr_blank.setBackgroundColor(Color.GRAY);
tr_blank.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT));
TextView label_date = new TextView(this);
label_date.setId(20);
label_date.setText(re.getDate());
label_date.setTextColor(Color.WHITE);
tr_blank.addView(label_date);
tl.addView(tr_blank, new TableLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT));
}
labelDATE.setText(re.getTime());
labelCP.setText(re.getCP());
labelBG.setText(re.getBG());
labelQA.setText(re.getQA());
labelCN.setText(re.getCN());
labelKT.setText(re.getKT());
for (TextView tv : tvArray)
{
tv.setTextColor(Color.WHITE);
tv.setId(200+count);
tr.setOnClickListener(this);
tr.addView(tv);
}
//add this to the table row
tl.addView(tr, new TableLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT));
dateCheck = re.getDate().toString();
++count;
}
}
public void onClick(View v)
{
if (v instanceof TableRow)
{
TableRow row = (TableRow) v;
TextView child = (TextView) row.getChildAt(0);
Toast toast = Toast.makeText(this, String.valueOf(child.getId()), Toast.LENGTH_SHORT);
toast.show();
}
}
}
如果需要,我可以提供用于创建网格的所有代码。
谢谢你的帮助。