Java contentView不更改动态编程的内容。今天早上上班,我甚至没碰它

Java contentView不更改动态编程的内容。今天早上上班,我甚至没碰它,java,android,Java,Android,今天早上我遇到了eclipse的一些问题,以及R不能再生的常见错误。 在我解决它之后,我写了很多新的包,所以恢复到上一个工作提交不是一个选项,现在是17:00,我在这里,所以 这是我的密码: @Override protected void onCreate(Bundle savedInstanceState) { mActivity = this; super.onCreate(savedInstanceState); contentView = getLayoutIn

今天早上我遇到了eclipse的一些问题,以及R不能再生的常见错误。 在我解决它之后,我写了很多新的包,所以恢复到上一个工作提交不是一个选项,现在是17:00,我在这里,所以

这是我的密码:

@Override
protected void onCreate(Bundle savedInstanceState) {
    mActivity = this;
    super.onCreate(savedInstanceState);
    contentView = getLayoutInflater().inflate(R.layout.android_messenger_conversation, null);
    setContentView(contentView);
}


@Override
protected void onStart() {
    super.onStart();
    Bundle extras = getIntent().getExtras();
    if(extras != null){
        Log.i("ConversationActivity/onStart","extras is not null");
        String extra = extras.getString(MainActivity.CONVERSATION_EXTRA);
        Log.i("ConversationActivity/onStart","got extra gave value: "+extra);
        if(extra!=withWhoWeAreChatting){
            withWhoWeAreChatting = extra;
        }
        ArrayList<ConversationInfo> arrayList = Conversation.getConversationWith(getApplicationContext(), extra);

        contentView = getLayoutInflater().inflate(R.layout.android_messenger_conversation, null);
        LinearLayout linearLayout = (LinearLayout) contentView.findViewById(R.id.android_messgener_conversation_LinearLayout);
        for(int i = arrayList.size()-1 ; i >= 0 ; i--){
            Log.i("ConversationActivity/onStart","Doing for loop: "+i);
            ConversationInfo conversationInfo = arrayList.get(i);
            if(conversationInfo.getProtocol()!=null){
                RelativeLayout relativeLayout = (RelativeLayout) getLayoutInflater().inflate(R.layout.android_messenger_inbox_message, null);
                TextView inbox_message = (TextView)relativeLayout.findViewById(R.id.inbox_message);
                inbox_message.setText(conversationInfo.getBody());

                linearLayout.addView(relativeLayout);
            }
            else{
                RelativeLayout relativeLayout = (RelativeLayout) getLayoutInflater().inflate(R.layout.android_messenger_sent_message, null);
                TextView inbox_message = (TextView)relativeLayout.findViewById(R.id.sentMessage);
                inbox_message.setText(conversationInfo.getBody());

                linearLayout.addView(relativeLayout);
            }
        }
        setContentView(contentView);
    }
}
@覆盖
创建时受保护的void(Bundle savedInstanceState){
mActivity=这个;
super.onCreate(savedInstanceState);
contentView=getLayoutInflater().充气(R.layout.android\u messenger\u对话,空);
setContentView(contentView);
}
@凌驾
受保护的void onStart(){
super.onStart();
Bundle extras=getIntent().getExtras();
如果(附加值!=null){
Log.i(“ConversationActivity/onStart”,“extras不为空”);
String extra=extras.getString(MainActivity.CONVERSATION\u extra);
Log.i(“会话活动/onStart”,“获得额外给定值:”+extra);
如果(额外!=带WhoweareChating){
带whowearechatting=额外;
}
ArrayList ArrayList=Conversation.getConversationWith(getApplicationContext(),额外);
contentView=getLayoutInflater().充气(R.layout.android\u messenger\u对话,空);
LinearLayout LinearLayout=(LinearLayout)contentView.findviewbyd(R.id.android\u messgener\u conversation\u LinearLayout);
对于(int i=arrayList.size()-1;i>=0;i--){
Log.i(“会话活动/onStart”,“为循环做:+i”);
ConversationInfo ConversationInfo=arrayList.get(i);
if(conversationInfo.getProtocol()!=null){
RelativeLayout RelativeLayout=(RelativeLayout)getLayoutInflater().充气(R.layout.android\u messenger\u inbox\u message,空);
TextView收件箱_消息=(TextView)relativeLayout.findViewById(R.id.inbox_消息);
收件箱_message.setText(conversationInfo.getBody());
linearLayout.addView(relativeLayout);
}
否则{
RelativeLayout RelativeLayout=(RelativeLayout)getLayoutInflater().充气(R.layout.android\u messenger\u sent\u message,null);
TextView收件箱_message=(TextView)relativeLayout.findViewById(R.id.sentMessage);
收件箱_message.setText(conversationInfo.getBody());
linearLayout.addView(relativeLayout);
}
}
setContentView(contentView);
}
}
我的评论上方的最后一个setContentView(contentView)并没有改变任何东西。通过日志,我检查了循环中的所有内容都没有错误地执行

有什么想法吗

如果你住在欧洲,我可以邮寄一些波兰啤酒给你:)


干杯

很抱歉给大家添麻烦:)

正如我提到的,从早上开始,我在这里没有做任何改变。但是我更改了scrollview的xml文件

由此:

        <LinearLayout
        android:id="@+id/android_messgener_conversation_LinearLayout"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical" >

    </LinearLayout>

为此:

        <LinearLayout
        android:id="@+id/android_messgener_conversation_LinearLayout"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical" >

    </LinearLayout>

恢复此选项修复了我的问题:)现在它几乎像一个符咒一样工作:)

再次为麻烦道歉


为用户user1455909干杯-当我遇到任何类型的bug时,清理和重建是我的基本工作:D

为什么要两次执行“setContentView(contentView)”?如果你把它保存在onCreate中的一个全局变量中(就像你正在做的那样),我认为你可以修改它的值,而不必膨胀并重新设置它。这可能是解决方案。现在就试试看不。这不是问题。我想你是想清理和重建这个项目,对吗?我看不出你的代码有什么问题。您是否可以测试将新文本视图添加到linearLayout而不是添加relativeLayout是否会显示一些内容?类似于:***文本视图tv=新文本视图(此);tv.setText(conversationInfo.getBody());线性布局。添加视图(电视);****将此代码放在if和else中。在这种情况下,我将创建一个用于调试的成员变量,将创建的循环中的最后一个
RelativeLayout
存储在其中,并创建一个选项菜单项,记录布局的位置(使用
getTop()
getLeft()
,…),并检查其父项是否为linearLayout