Java 我无法使用findViewById重新引用TableRow

Java 我无法使用findViewById重新引用TableRow,java,android,android-studio,Java,Android,Android Studio,我有一个活动,通过编程创建Tablerow,因为我不知道需要多少文件。 每个TableRow都有一个ID,从100开始,然后继续200、300,依此类推。 当我创建第3行时,TableRow的ID是300。 然后,当有人编辑其他行时,我需要知道哪一行只是为了处理该行的元素 我的问题:以前的值: trActiva.getId=300 这是我写的代码: lineaActiva = (tv.getId()) / 100 * 100; trActiva = findViewById(lineaAct

我有一个活动,通过编程创建Tablerow,因为我不知道需要多少文件。 每个TableRow都有一个ID,从100开始,然后继续200、300,依此类推。 当我创建第3行时,TableRow的ID是300。 然后,当有人编辑其他行时,我需要知道哪一行只是为了处理该行的元素

我的问题:以前的值: trActiva.getId=300

这是我写的代码:

 lineaActiva = (tv.getId()) / 100 * 100;
 trActiva = findViewById(lineaActiva);
就在这两行之前的点上trActiva.getId=300 在代码的第一行之后lineaActiva=200 这意味着在第二行之后,trActiva.getId应该是200,但仍然是300

更奇怪的事情: 在这两行之后:

trActiva.getId()=300
findViewById(lineaActiva).getId()=200
这里发生了什么?为什么trActiva没有改变


谢谢

我们不确定您是如何增加Id的,您是如何存储数据的,以及您是如何在计算机屏幕上查看300行的 因此,缺少了很多代码来为您的问题提供非常有针对性的答案 下面是我们从Derby数据库填充的表 该表名为ptable,我们还可以提到,我们正在使用模型-视图-控制器模式来管理数据,以获取和设置变量 首先,我们从数据库中读取并用此代码填充ptable

然后我们编写侦听器代码,允许我们查看所选行的详细信息 请注意,我们从所选行获取ID 在这里,您可以使用该值查找大于300的新条目 或者,您可以在表上编写搜索查询,查找ID大于300的所有记录

下面是允许您单击表中某一行的代码

希望这有帮助,欢迎来到Stack Overflow 请在将来发布更多的代码,这样你的问题就可以有一个更明确的答案

private void ReadFromParent() throws SQLException{

ObservableList<ParentModel> TableData = FXCollections.observableArrayList();
    stmnt = conn.createStatement();
    ResultSet rs = stmnt.executeQuery("SELECT * FROM Parent"); 
    while (rs.next()){// Add data to observableArrayList TableData to select a table ROW

    TableData.add(new ParentModel(rs.getString("PID"),rs.getString("pMonth"),rs.getString("pYear")));
    }
    PropertyValueFactory<ParentModel, String> IDCellValueFactory = new PropertyValueFactory<>("PID");
    colID.setCellValueFactory(IDCellValueFactory);
    PropertyValueFactory<ParentModel, String> DateCellValueFactory = new PropertyValueFactory<>("pMonth");
    colMonth.setCellValueFactory(DateCellValueFactory);
    PropertyValueFactory<ParentModel, String> TypeCellValueFactory = new PropertyValueFactory<>("pYear");
    colYear.setCellValueFactory(TypeCellValueFactory);

    // ================================================================
    // colTxDate are the ID's for the tableview columns
    // sortDate  are the Column Names for the Database TABLE CDBalance
    // ================================================================
    colMonth.setStyle("-fx-alignment: CENTER;");
    colYear.setStyle("-fx-alignment:CENTER;");

    Collections.sort(TableData, (p2, p1)-> p1.getPID().compareToIgnoreCase(p2.getPID()));
    // Line of Code above Sorts Database Columns based on VARIABLE in ParentModel
    // Change p2,p1 to sort Ascending or Descending
    if(TableData.size() < 15) {// Format TableView to display Vertical ScrollBar
        ptable.setPrefWidth(336);// 19 is the off set
    }else {
        ptable.setPrefWidth(355);
    }   ptable.setItems(TableData);
    stmnt.close();  
}
    private void showTableDataDetails(ParentModel info) throws IOException{
    if (info != null) {
        info =  (ParentModel) ptable.getSelectionModel().getSelectedItem();
        strID = info.getPID();
        strMONTH = info.getPMonth();
        strYEAR = info.getPYear();
        toChildView();
        System.out.println("########### PID "+strID);
    } 
}

@Override
public void initialize(URL url, ResourceBundle rb) {

    ptable.getSelectionModel().selectedItemProperty().addListener((ObservableValue<? extends ParentModel>
        observable,ParentModel oldValue, ParentModel newValue) -> {
        try {
            showTableDataDetails((ParentModel) newValue); // When a row of the table is Selected call
            // Proper Construction                       // showTableDataDetails method
        } catch (IOException ex) {
            Logger.getLogger(ParentTableViewController.class.getName()).log(Level.SEVERE, null, ex);
        }
    });
}