How to can I make certain fields appear in R file? - android

I have these pieces of code:
btnStart = (Button) findViewById(R.id.buttonstart);
btnStop = (Button) findViewById(R.id.buttonstop);
ipfield = (EditText) findViewById(R.id.ipfield);
portfield = (EditText) findViewById(R.id.portfield);
and
addPreferencesFromResource(R.xml.preferences);
It gives me these errors:
buttonstart cannot be resolved or is not a field
buttonstop cannot be resolved or is not a field
ipfield cannot be resolved or is not a field
portfield cannot be resolved or is not a field
xml cannot be resolved or is not a field
So I went into R to see if I can find them and they aren't there. I tried setting them manually, but I still get errors. I cleaned the project multiple times and R still didn't generate them.
These are my imports:
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.Button;
import android.widget.EditText;
Button btnStart, btnStop;
EditText ipfield, portfield;

I think that you have not declare the ID in the xml file where you have define your Buttons and EditTexts.
You have to declare it with (for example):
android:id="#+id/buttonstart"

try using [your package name].R to reference your views, also make sure that your xml files have the id attribute set like this;
android:id="#+id/buttonstart"
and so on.

Related

How to access EditText type in Android Studio?

How can I access an EditText type from Android Studio ? I have already done the UI Design before writing the code on the MainActivity file. Do I need an extra import file in order to access EditText Type?
All I have done was to type: EditText nameTxt. But I got an error message at "EditText"
This is very simple. Firstly, make sure that you have given your EditText an id in the Layout (UI) file. This is the line you would add.
android:id="#+id/layout_item_id"
Next go to your Java file and add this line in the onCreate() method.
EditText myEditText = (EditText)findViewById(R.id.yourEditTextId)
Now if you want to get the text that is inside the EditText then you would add this line:
String string = myEditText.getText().toString();
Most probably yes, you are missing the import in your java file. Try adding the import
import android.widget.EditText;
Type below Code for Java
EditText myEditText = (EditText)findViewById(R.id.yourEditTextId);

FATAL EXCEPTION: main android validation

I have an application in which i want to add validation, but when i run only validation page it works fine but when i rut it with this page it gives me error.
I think i am doing mistake where i am adding an imagebutton by which i call the validation page which name is propertysearch.
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.support.v4.view.ViewPager;
import android.support.v4.view.ViewPager.OnPageChangeListener;
import android.view.View;
import android.widget.Button;
import android.widget.ImageButton;
Well the stacktrace says there's a NullPointerException at line 32 in your ViewPagerStyle1Activity. Look what call is at that line and you should know the culprit.
You are trying to find imageButton1 in your layout main, but it is actually located in your layout layout_one. The fix now depends on what you are actually plan to do with your fragment. You could just set the fragment layout as the layout for your ViewPagerStyle1Activity by replacing setContentView(R.layout.main); with setContentView(R.layout.layout_one); in its' onCreate method.
Update: maybe you should read a bit first about Android Activities, Layouts and Fragments. This is very basic stuff and you won't get far without learning it in and out.
Of course you can't find the imageButton1, if you hard-code findViewById to return null in your fragment.
private ImageButton findViewById(int imagebutton1) {
// TODO Auto-generated method stub
return null;
}
But I get the sense you really don't know what you are actually trying to do.

findviewbyid not working

Eclipse is not recognizing R.id. I just started learning Android so please help me out here.
import android.app.Activity;
import android.os.Bundle;
import android.widget.EditText;
public class SecondappActivity extends Activity {
EditText ed;
/** Called when the activity is first created. */
#Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ed=(EditText) findViewById(R.id.b1);
}
}
it is saying id cannot be resolved or is not a field
Check your xml file and make sure it doesn't have any error. Looks like there is a problem with generating R file. It can be caused by errors in xml.
Check for any errors in your xml files or your res folder. Clean and rebuild project. It will work
What does your main.xml file look like?
There is nothing wrong with your java code. Assuming all your imports are working.
Chances are bn1 is either not in that layout. Or you are not adding the '+' in you android:id field to make sure this goes into the R.java file.
Put
import YourWholePackage.R;
in import segment.
I have the same issue :/ I am just getting into android development and already stuck. This is my code:
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
EditText nameEditText = (EditText) findViewById(R.id.nameEditText)
}
}
Nothing fancy, just one edittext field and one button, no errors in activity_main.xml. But when I am typing findViewById - its not even available in autosuggestion list.
Thanks

getText() Not Responding

I'm trying to get the text from one XML to another but it just crashes when its supposed to happen so any help will be welcomed!
Here is the code by the way
package com.android.test1;
import android.app.Activity;
import android.os.Bundle;
import android.widget.EditText;
import android.widget.TextView;
public class xmltwo extends Activity{
#Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.xmltwo);
TextView one = (TextView) findViewById(R.id.textView1);
EditText two = (EditText) findViewById(R.id.editText1);
one.setText(two.getText());
}
}
That's from the java file that opens the XML where the textView is.
My guess?
The logcat will be showing a NullPointerException for the line one.setText(two.getText()); because the layout file referenced by R.layout.xmltwo doesn't actually contain a TextView with an id of R.id.textView1 so the TextView called one is null.
Either that or that layout file doesn't contain an EditText with an id of R.id.editText1 which will make that null and cause an NPE when trying to call two.getText().
Just as an extra bit of information, if you want to get the text from an EditText you need to use getText().toString()
In this article Android: edit textview defined in xml one of the members has a similar issue. They theorize that possibly setContentView hasn't finished running yet and that may be the issue. However, you're saying that it is just completely crashing so I'm not sure if that could be the problem.
Could there be another part of your in your super class that could be hanging up? Could you use the getString() function instead perhaps?
I hope some of this might be helpful! I am interested in finding a solution so I intend to keep on reading to try and help!
try
one.setText(two.getText().toString().trim()+"");
hope this help..

r.id not regenerated

I am trying to create a simple button example, but when I add this code:
mButton = (Button) findViewById(R.id.button1);
it wont update my R.id file. I've tried everything including making sure automatic build is on, cleaning the project, and updating the SDK. This happens in both 1.6 and 2.2 projects.
Here's what full code is looking like:
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class NewTest extends Activity {
Button myButton;
/** Called when the activity is first created. */
#Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
myButton = (Button) findViewById(R.id.button1);
}
}
findViewById is looking at the R.id file for the location you refer to.
Your code will not cause the file to update as it is only looking for the button.
Creating the button in your layout will cause the R.id file to update.
<Button
android:id="#+id/button1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Button One"/>
As you are using findViewById in context, and the view for the current context is main.xml, the above button example will need to be inside the main.xml file. Otherwise if you had another button with the same name in another .xml layout, the entry would be made in your R.id file but your code would give you a null pointer exception, because the button doesn't exist in the context you are trying to reference it from.
Make sure you have proper import for your app's R class in your Activity:
import your.app.package.R;
UPDATE: this implicit import is only needed if your Activity class is not in the root of your.app.package package.
Save your project before using R.id.something
Since you are using XML based Layout make sure that you have android:id attribute in the main.xml file with "#+id/button1" as its value.......
It wouldn't update the generated R.java file when you just refer to an existing id.
It only updates when you add a resource. button01 must already exist in one of your .xml files, otherwise your 'findViewById(R.id.button1)' wouldn't compile.
I had the same problem using API 19 with the layout editor set to API 15 while trying to follow the NotePadV1 tutorial. I couldn't get the R.id.text1 to compile from the notes_row.xml file.
Originally, I had just pasted text into the xml file to generate the layout. After unsuccessfully trying deleting R and a Clean, I tried deleting the notes_row layout entirely. When I recreated the layout, I used the graphical interface to add the properties of the TextView object, just the Id #+id/text1, width and height. Then I did a Clean and compile. It worked.

Categories

Resources